向JTable添加多行

时间:2015-01-09 01:46:00

标签: java swing jtable jscrollpane

这是一个非常新手的问题,但我很难在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上,而不是让它显示我很多只有一行数据。

1 个答案:

答案 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