2016-03-26 19 views
-1

JTextFieldsのデータをJtableに連続して追加したいと思います。 追加ボタンをクリックすると、JTextFieldsのテキストをJtableに挿入する必要があります。JTextFieldのデータをJTableに連続的に追加する方法

このコードでは、追加ボタンをクリックすると1行だけ生成されます。 挿入した前の行に行を追加します。

public void actionPerformed(ActionEvent arg0) { 
     DefaultTableModel model = new DefaultTableModel(); 
     table_1.setModel(model); 
     model.addColumn("Product Name"); 
     model.addColumn("Product Price"); 
     model.addColumn("Quantity"); 
     String name = jFrame_pName.getText().trim(); 
     String price = jFrame_pPrice.getText().trim(); 
     String quantity = jFrame_quantity.getText().trim(); 
     String st[] = {name, price, quantity}; 
     model.addRow(st); 
    } 

テーブルにEventHandlerを追加する必要はありますか?ありがとうございました。私の任務で私を助けてください。

答えて

4

移動この部分:インスタンスメンバーとして

DefaultTableModel model = new DefaultTableModel(); 
    table_1.setModel(model); 
    model.addColumn("Product Name"); 
    model.addColumn("Product Price"); 
    model.addColumn("Quantity"); 
あなたのコンストラクタに

と定義したモデル。ボタンクリックごとにテーブルモデルを作成しないでください。以下の部分はactionPerformedで十分です。

public void actionPerformed(ActionEvent arg0) { 
    String name = jFrame_pName.getText().trim(); 
    String price = jFrame_pPrice.getText().trim(); 
    String quantity = jFrame_quantity.getText().trim(); 
    String st[] = {name, price, quantity}; 
    model.addRow(st); 
} 

編集:

、あなたの完全なコードを共有している場合、私は上記の部品を置くためにあなたを伝えることができます。しかし今のところ、以下のコード例はあなたを導くことができます。

public class TableClass { 
    DefaultTableModel model; 

    public TableClass() { 
     model = new DefaultTableModel(); 
     table_1.setModel(model); 
     model.addColumn("Product Name"); 
     model.addColumn("Product Price"); 
     model.addColumn("Quantity"); 


     JButton addButton = JButton("Add"); 
     addButton.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       String name = jFrame_pName.getText().trim(); 
       String price = jFrame_pPrice.getText().trim(); 
       String quantity = jFrame_quantity.getText().trim(); 
       String st[] = {name, price, quantity}; 
       model.addRow(st); 
      } 
     }) 
    } 
} 
関連する問題