2013-04-05 48 views
0

我将用于JTable的数据是将使用方法返回的对象数据的ArrayList(例如Person)。由于JTable的构造函数要求您传入Object类型的多维数组,因此是否需要将此ArrayList转换为多维数组? 无论哪种情况,我该如何从Object数据的ArrayList创建一个JTable?在Java中创建JTable

感谢很多使用DefaultTableModel赞赏

+0

请仔细阅读[如何使用表](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)来回答你的问题。 – Kai 2013-04-05 10:04:41

+0

我实际上使用的是Oracle站点,但并未像我一样处理ArrayList。与教程不同,我的数据不是硬编码的。谢谢 – 2013-04-05 10:11:47

回答

2

这是可以做到(无需多维数组)

String columns = new String[] {"Name", "Age"}; 
ArrayList<Person> data = getYourData(); 

DefaultTableModel dm = new DefaultTableModel(data.size(), columns.length); 
JTable table = new JTable(dm); 

for(Person p : data) { 
    table.addRow(new String[]{p.name, p.age}); 
} 

看到更多的信息this问题

+0

非常感谢您的回复。好的解决方案没想到它是基础班。再次感谢 – 2013-04-05 10:23:54

2
you can try this code. And set your JTables model from this method. 


public TableModel toTableModel() { 
    Object[] headerNames = new Object[] { "a", "b" }; 
    DefaultTableModel model = new DefaultTableModel(headerNames, 0); 
    List<String> valueList = new ArrayList<String>(); 
    valueList.add("a"); 
    valueList.add("b"); 
    model.addRow(valueList.toArray()); 
    return model; 
} 
+0

非常感谢答复,没想到基类。再次感谢 – 2013-04-05 10:25:56