我是java的新手,我想获取存储在Map中的数据并将其添加到表中。在我阅读关于“如何使用表格”的java教程时,我发现自己迷失了以下示例代码:
String[] columnNames = { "blah", "blah" };
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}
};
然后我应该像这样实例化一个JTable对象:
JTable table = new JTable(data, columnNames);
我很困惑如何将数据从地图填充到对象数组中,就像他们在上面的示例中所做的那样?我的地图中的行中的数据将是String和Float。
理想情况下,我会有两列(只是一个例子),{“文件”,“大小”}然后我的行会把文件名的字符串和大小的浮点数。
我尝试了各种各样的东西,我觉得这些东西太傻了,但没有任何效果。
答案 0 :(得分:3)
我建议使用基于列表的自定义TableModel。
在这里查看教程:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data
以下是我前一段时间写过的基于列表的只读TableModel示例:
如果您没有在NetBeans平台上构建应用程序(而我建议使用RCP),您也可以使用ResourceBundle代替NbBundle。
答案 1 :(得分:3)
Object[][] fileList = new Object[fileListVector.size()][2];
for (int i = 0; i < fileListVector.size(); i++) {
fileList [i][0] = fileListVector.get(i).getFileName();
fileList [i][1] = fileListVector.get(i).getFileSize();
}
您可以将数据从矢量填充到这样的数组中。