将项添加到JTable的数组中

时间:2013-06-16 04:47:07

标签: java swing multidimensional-array jtable

我有一个只有字段名称且没有数据的表, 我想从用户的输入中输入数据,我该怎么做?

我的实际节目太长了,所以 这是我在这里写的一个迷你程序。

我想要添加到表中的示例是: {“男士服装”,“RM 5”,输入,总数}

输入来自第一个按钮,total来自我实际程序中的setter getter文件

我想使用List但似乎它与我的Object [] []顺序不兼容。

我想要实现的是在用户从按钮中选择项目后生成订单列表。

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    class test implements ActionListener
    {
private Object[][]order={   };  // I need to add data here in order to put 
                                         //in the JTable

private JFrame f;               // for 1st frame with the buttons
private JTable table;
private JScrollPane pane;
private JButton button1;    
private JFrame f2;              //pop up window after button2 
private JButton button2;
private String input;           //input when press button1

    public test()
    {

    button1=new JButton("press here first");
    button2=new JButton("press here after above");

    //first frame config

    f=new JFrame();
    f.setSize(500,500);
    f.setVisible(true);
    f.setLayout(new GridLayout(2,0));
    f.add(button1);
    f.add(button2);


    button1.addActionListener(this);
    button2.addActionListener(this);
     }

    public static void main(String args[])
{
test lo=new test(); 
}


public void actionPerformed(ActionEvent e)
    {

  if(e.getSource()==button1)    // for the first button
        {
    input=JOptionPane.showInputDialog(null,"how many do you want?");
            //user input on the quantity
        }

  if(e.getSource()==button2)
     {
    window2();
     }

    } 


public JFrame window2()         //second window config
     {
    String[] title={"item","Price","Qty","total"};
    table=new JTable(order,title);
    pane=new JScrollPane(table);

    f2=new JFrame();
    f2.setSize(500,500);
    f2.setVisible(true);
    f2.setLayout(new FlowLayout());
    f2.add(pane);
    f2.pack();

    return f2;
     }

    }

1 个答案:

答案 0 :(得分:3)

您应该按如下方式创建表:

DefaultTableModel model = new DefaultTableModel(title, 0);
JTable table = new JTable( model );

这将创建一个只包含标题和0行数据的表。

然后,当您想要添加新的数据行时,您将使用:

model.addRow(...);

您可以将数据作为Vector或数组添加到DefaultTableModel。

如果要使用List,则需要使用自定义TableModel模型。您可以查看List Table Model