为JTable对象的object [] []添加数据

时间:2013-05-13 14:38:40

标签: java arrays swing object jtable

我是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。

理想情况下,我会有两列(只是一个例子),{“文件”,“大小”}然后我的行会把文件名的字符串和大小的浮点数。

我尝试了各种各样的东西,我觉得这些东西太傻了,但没有任何效果。

2 个答案:

答案 0 :(得分:3)

我建议使用基于列表的自定义TableModel。

在这里查看教程:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

以下是我前一段时间写过的基于列表的只读TableModel示例:

http://puces-samples.svn.sourceforge.net/viewvc/puces-samples/tags/sessionstate-1.0/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision=13&view=markup

如果您没有在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();
}

您可以将数据从矢量填充到这样的数组中。