-5

次のコードを見つけました。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        DefaultTableModel tableModel = new DefaultTableModel();
        JTable table = new JTable();
        table.setModel(tableModel);
        int c=0;
        Vector rl=new Vector<Object(6);        
        rl.add(c+1);
        rl.add(jTextField1.getText());
        rl.add(jTextField11.getText());
        rl.add(jTextField7.getText());
        rl.add(jTextField8.getText());
        rl.add(jTextField9.getText());
        tableModel.addRow(rl);}

しかし、それは機能していません。

そこにあるテーブルに追加ボタンをクリックすると、テキストフィールドであるpcode、製品名、価格、数量、合計価格に対応するフィールドをコピーする必要があります

4

1 に答える 1

6

「見つかった」コードをすぐに使用しないでください。見つかったコードのアイデアを使用して、独自のコードを記述します。コードに問題がある場合は、どのような問題があるかをお知らせください。「機能していない」ということは、私たちがあなたを助けるために使えることをほとんど教えてくれません。

既存の JTable に行を追加するだけの場合は、ActionListener 内に新しい JTable を作成しないでください。その代わり、

  • JTable のモデルを取得します。
  • JTextFields からデータを取得し、JTable が DefaultTableModel を使用する場合は、データを使用して Object の配列またはデータで満たされた Vector を作成します。
  • または、JTable が AbstractTableModel を使用する場合は、JTextField が保持するデータを使用して適切な行オブジェクトを作成します。必要なオブジェクトのタイプは、TableModel が保持するオブジェクトのタイプによって異なります。
  • DefaultTableModel の場合は、そのaddRow(...)メソッドを呼び出して、Vector または Object[] 配列をモデルに追加できます。addRow(...)それ以外の場合は、AbstractTableModel クラス用に独自のメソッドを作成する必要があります。
  • 独自のメソッドを作成する場合はaddRow(...)、モデルのデータに変更を加えた後、必ず適切な fireTableXXX(...)` メソッドを呼び出してください。これらのメソッドの詳細については、 AbstractTableModel APIを確認してください。ただし、これらのメソッドは、JTable 自体を含むモデルの変更をすべてのリスナーに通知するために重要であることに注意してください。
  • 何よりもまず、Swing JTable チュートリアルを必ず読んでください。これに関するほとんどの説明がそこで説明されています。私自身の意見では、このチュートリアルの唯一の欠点は、AbstractTableModel について説明されており、DefaultTableModels に関する情報がほとんど提供されていないことですが、その点についてはお手伝いできます。
于 2013-03-29T21:28:08.240 に答える