0

フィールド名だけでデータがないテーブルがあります。ユーザーが入力したデータを入力したいのですが、どうすればよいですか?

私の実際のプログラムは長すぎるので、ここに投稿するために書いたミニプログラムです。

テーブルに追加したいものの例は次のとおりです: {"men's clothings","RM 5",input,total}

入力は最初のボタンから、合計は実際のプログラムのセッターゲッターファイルからです

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;
     }

    }
4

1 に答える 1

3

次のようにテーブルを作成する必要があります。

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

これにより、見出しだけでデータ行が 0 行のテーブルが作成されます。

次に、新しいデータ行を追加する場合は、次を使用します。

model.addRow(...);

ベクターまたは配列として DefaultTableModel にデータを追加できます。

List を使用する場合は、カスタム TableModel モデルを使用する必要があります。List Table Modelを確認できます。

于 2013-06-16T04:56:20.197 に答える