Arraylist, jTable

Hello,
I have an arraylist and i'm trying to put the contents in a Jtable under column names First Name, Last Name, School ID, Number.

The code below extracts the values of First Name, Last Name, School ID, and Number from a file. I am trying to put these info in a Jtable but i don't know if and how to use the default table model or abstract table model.
Please Help.


import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;




public class ReadFile {
	private static String output = "";
	//static List list = new ArrayList(); 
	 static ArrayList<String> list = new ArrayList<String>();
	
    public static void main(String[] args) {
  
        //
        // Create an instance of File for data.txt file.
        //
        File file = new File("data.txt");
        
         
      
        try {
            
            Scanner scanner = new Scanner(file);
           
            //output = "";
            while (scanner.hasNextLine()) {
                String str = scanner.nextLine();
                //System.out.println(line);
                if (parseString(str) != null) {
                // output += parseString(str);
                 list.add(parseString(str));
                       
                } 
               
            }
            
            System.out.println(list);
            System.out.println();
            
            for(int i=0;i<list.size();i++)
            {
            System.out.println(list.get(i));
            }

           

            //System.out.println(list);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        
    }
    
    private static String parseString(String line) {
    
        if (line.contains("First Name") || line.contains("Last Name") || line.contains("School ID")|| line.contains("Number")) {
                    line = line.substring(line.indexOf("=") + 1, line.length());
            //return line + "\n";
            return line;
           
        	
        } else {
            return null;
        }
    } 
    
 }

Open in new window

SmockAsked:
Who is Participating?
 
objectsConnect With a Mentor Commented:
tableModel.addRow(new Object[] { props.getString("ID"), props.getString("First Name"), props.getString("Last Name") });
0
 
CEHJCommented:
Please post example file. CSV is a good way
0
 
SmockAuthor Commented:
I have a txt file with the following:

ID = 0
First Name=Joe
Last Name=Doe
Age=21
Gender=Male
School = middle school
StudentID = 1234
Address = some address.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
CEHJCommented:
That's not a good format. After one entry, the 'column names' become redundant and wasteful. I would use CSV. You can then use

http://technojeeves.com/joomla/index.php/free/104-csv-to-tablemodel
0
 
SmockAuthor Commented:
Thanks but it's in a text file and not a csv.
0
 
CEHJCommented:
Then split on '=' and create a DefaultTableModel. After the first data 'row' you'll have to ignore the column names
0
 
SmockAuthor Commented:
My code splits on '=' and stores the values in an arraylist. I don't know how to put it in the Jtable.
0
 
CEHJCommented:
Is it always just one row of data?
0
 
SmockAuthor Commented:
I'm writing a bigger program and will incoporate multiple rows.

My goal is to eventually loop through a bunch of files named data.txt and extract the necessary data and then store it in the jtable.
so, it's not always one row of data.
0
 
CEHJConnect With a Mentor Commented:
Use Vector instead of ArrayList. Every row must be one Vector instance, which must be added to an 'allRows' Vector. Then you can use a DefaultTableModel

http://download.oracle.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html#DefaultTableModel(java.util.Vector,%20java.util.Vector) 
0
 
SmockAuthor Commented:
So do i store the output that is split from the "=" into a Vector?
0
 
CEHJCommented:
Yes, you add each column of a single row to one and the same Vector
0
 
SmockAuthor Commented:
May i be given an example
0
 
objectsConnect With a Mentor Commented:
Use the Properties class to parse the file


Properties props = new Properties();
FileInputStream in = new FileInputStream("data.txt");
props.load(in);
in.close();

String id = props.getString("ID");
...

Then add the data to your table model

0
 
CEHJCommented:
Using Properties will only work for a single row btw.

Your problem here is that your input format is not a good one (see http:#33675621 ), so you've made things difficult for yourself
0
 
CEHJCommented:
Plenty of help given
0
 
SmockAuthor Commented:
thanks
0
All Courses

From novice to tech pro — start learning today.