JTable padding using list

How will I populate a JTable with values ​​from a list with an object type. My code is as follows:

String[] columnNames = {"CLASS CODE", "TIME", "DAY", "ROOM", "PROFESSOR"}; List<org.mine.ScheduleAttr> schedule = getStudSched(studNo); DefaultTableModel model = new DefaultTableModel(); table.setModel(model); model.setColumnIdentifiers(columnNames); 

I already have columns, will the list come from a schedule variable? How can I put this in my table given these columns?

+7
source share
3 answers

Take a look at DefaultTableModel . You can iterate over your list and create an array of objects for each line.

 for (ScheduleAttr s : schedule) { Object[] o = new Object[5]; o[0] = s.getX(); o[1] = s.getY(); o[2] = s.getZ(); o[3] = s.getA(); o[4] = s.getB(); model.addRow(o); } 
+7
source

You can use something similar (just changing columns and values ):

 import java.awt.BorderLayout; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; public class TestJFrame extends JFrame { private static final long serialVersionUID = 1L; public static void main(String[] args) { TestJFrame testJFrame = new TestJFrame(); List<String> columns = new ArrayList<String>(); List<String[]> values = new ArrayList<String[]>(); columns.add("col1"); columns.add("col2"); columns.add("col3"); for (int i = 0; i < 100; i++) { values.add(new String[] {"val"+i+" col1","val"+i+" col2","val"+i+" col3"}); } TableModel tableModel = new DefaultTableModel(values.toArray(new Object[][] {}), columns.toArray()); JTable table = new JTable(tableModel); testJFrame.setLayout(new BorderLayout()); testJFrame.add(new JScrollPane(table), BorderLayout.CENTER); testJFrame.add(table.getTableHeader(), BorderLayout.NORTH); testJFrame.setVisible(true); testJFrame.setSize(200,200); } } 

columns should not look like columns.toArray() , because you already have an array of objects, so just use it. In the end, to use your columns, the instruction looks like this: TableModel tableModel = new DefaultTableModel(values.toArray(new Object[][] {}), columnNames);

+4
source

try it

make an iterator first

 Iterator itr = StringList.iterator(); while(itr.hasNext()) { Object element = itr.next(); int y=0; for (y=0; y <=16 ; y++){ table_4.setValueAt(element, y, 0); 

table_4 is the name of your table, then set the row and column into which you want to insert the row

0
source

All Articles