这是一个非常新手的问题,但我很难在Jtable中添加多行。
我有一个程序从用户搜索过的文件中读取数据,我想将它全部输出到表格中。
问题是,只要有多个项目与该搜索相匹配,信息就不会在一个表格中全部输出,而是弹出菜单多次出现,每次只在Jtable上显示一行,而不是给我一个弹出窗口,它将在一个Jtable中包含所有行。
以下是代码:
for (int x=0;x<data.length(); ++x)
{
if (database[4].equalsIgnoreCase(valenceInput)) //Search database for the number inputted by user
{
Object[][] rows = {
{database[0],database[1],database[2],database[3],database[4]}
};
Object[] cols = {
"Name","Symbol","Atomic Number","Atomic Mass", "# of Valence Electrons"
};
JTable table = new JTable(rows, cols);
JOptionPane.showMessageDialog(null, new JScrollPane(table));
found=true; //Booleon set to true to ensure desired output
break;
}
}
这是输出的结果: http://i.imgur.com/RFkRtug.png
在此之后,我会得到另一个弹出窗口,它会显示与搜索匹配的另一行数据,我试图弄清楚如何将所有行放在一个Jtable上,而不是让它显示我很多只有一行数据。
答案 0 :(得分:2)
在TableModel
内构建for-loop
,并在表格完成后显示...
DefaultTableModel model = new DefaultTableModel(
new Object[]{"Name","Symbol","Atomic Number","Atomic Mass", "# of Valence Electrons"},
0);
for (int x=0;x<data.length(); ++x)
{
if (database[4].equalsIgnoreCase(valenceInput)) //Search database for the number inputted by user
{
Object[] rows = {database[0],database[1],database[2],database[3],database[4]};
model.addRow(rows);
}
}
JTable table = new JTable(model);
JOptionPane.showMessageDialog(null, new JScrollPane(table));
有关详细信息,请参阅How to Use Tables