使用List填充JTable

如何使用具有对象类型的List中的值填充JTable。 我的代码看起来像这样:

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

我已经有了列,列表会来自schedule变量吗? 考虑到这些列,我怎么能把它放到我的桌子上?

看看DefaultTableModel 。 您可以遍历List并为每行创建Object数组。

 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); } 

你可以使用类似的东西(只是改变columnsvalues ):

 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 columns = new ArrayList(); List values = new ArrayList(); 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不需要看起来像columns.toArray()因为你已经有了一个对象数组,所以只是使用它。 最后,为了使用您的列,指令如下所示: TableModel tableModel = new DefaultTableModel(values.toArray(new Object[][] {}), columnNames);

尝试这个

首先做一个迭代器

 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是您的表名,然后设置要插入字符串的行和列