web-dev-qa-db-ja.com

jtextfieldおよびコンボボックスから受け取った値からデータの行をJtableに追加する方法

JFrames、JTextFieldなどを含むJComboboxフォームがあり、それらの値を変数に受け取ることができます。次に、受け取ったデータをJTableユーザーが[追加]またはそのようなものをクリックしたときの新しい行。

Net-beansを使用してJTableを作成しました。問題は、これらの変数からテーブルの行にデータを追加するコードです。基本的な例をいただければ幸いです。私は数多くの例を試し、ActionListenerJButtonにコードを追加しましたが、何も起こりません。私が試した例は次のとおりです。 JTableに行を追加する方法 および AbstractTableModelメソッドを使用してJTableに行を追加する方法?

任意のヘルプをいただければ幸いです。

14
Nawaz

Netbeans GUIビルダーでJTablesを操作するためのPeeskilletの不完全なチュートリアル

  • テーブルの列ヘッダーを設定します
    1. デザインビューでテーブルを強調表示し、右のプロパティペインに移動します。 「プロパティ」と表示されるタブにする必要があります。テーブルを囲むスクロールペインではなく、テーブルを強調表示してください。そうしないと、次のステップが機能しません。
    2. クリックしてください ... プロパティの右にあるボタンmodel。ダイアログが表示されます。
    3. 行を0に設定し、必要な列の数とその名前を設定します。
  • フレームにボタンを追加します。ユーザーが行を送信する準備ができたら、このボタンをクリックします

    1. ボタンを右クリックし、Events -> Action -> actionPerformedを選択します
    2. 次のようなコードが自動生成されます

      private void jButton1ActionPerformed(Java.awt.event.ActionEvent) {}
      
  • jTable1にはDefaultTableModelが付きます。データを使用してモデルに行を追加できます

    private void jButton1ActionPerformed(Java.awt.event.ActionEvent) {
        String data1 = something1.getSomething();
        String data2 = something2.getSomething();
        String data3 = something3.getSomething();
        String data4 = something4.getSomething();
    
        Object[] row = { data1, data2, data3, data4 };
    
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    
        model.addRow(row);
    
        // clear the entries.
    }
    

そのため、2つのテキストフィールド、コンボボックス、チェックボックスなどのデータセットごとに、ボタンを押すたびにそのデータを収集し、モデルに行として追加できます。

25
Paul Samsotha

このコードをテンプレートとして使用できます。要件に応じてカスタマイズしてください。

DefaultTableModel model = new DefaultTableModel();
List<String> list = new ArrayList<String>();

list.add(textField.getText());
list.add(comboBox.getSelectedItem());

model.addRow(list.toArray());

table.setModel(model);

ここでDefaultTableModelJTableに行を追加するために使用され、詳細情報を取得できます here

8
eatSleepCode
String[] tblHead={"Item Name","Price","Qty","Discount"};
DefaultTableModel dtm=new DefaultTableModel(tblHead,0);
JTable tbl=new JTable(dtm);
String[] item={"A","B","C","D"};
dtm.addRow(item);

ここで、これが解決策です。

5