2

次のコードを使用して、3列3行のテーブルを生成します。最初の列にはチェックボックスが含まれ、2番目の列には単語:row iが含まれます。ここで、iは行番号に対応します。

private void loadTable {
       int rowCount  = 3;
     Boolean [] boolArray  = new Boolean[3];

     for(int y=0;y<3;y++)
         boolArray[y]=false;

     int columnCount = 2;
     Object data[] = new Object [rowCount];
      for(int y=1;y<=3;y++)
         data[y-1]="row "+y;

     mainModel = new DefaultTableModel();
     mainModel.addColumn("", boolArray);
     mainModel.addColumn("", data);
       jScrollPane1.getViewport().add(tableOne, null);
     aTableClass.setModel(mainModel);

}     




class ATableClass extends JTable {
              public Class getColumnClass(int column) {
                try {
                  if (column == 0) {
                    return Class.forName("java.lang.Boolean");
                  }
                  return Class.forName("java.lang.Object");
                }
                catch (ClassNotFoundException ex) {
                  ex.printStackTrace();
                  return null;
                }
              }
            }

このテーブル内に生成されたチェックボックスにアクションリスナーを追加するにはどうすればよいですか?

4

1 に答える 1

3

カスタムセルテーブルレンダラーとエディターを定義し、レンダリングされたコンポーネントにアクションリスナーを追加する必要があります。このスレッドを見てください。このは私にとって非常に役に立ちました。

一言で言えば、あなたはしなければなりません:

  1. どこかにインターフェースを実装TableCellRendererする(列のレンダリング方法を定義する)
  2. どこかにインターフェースを実装TableCellEditorする(列の編集方法を定義する)
  3. JTable目的のレンダラーとエディターに追加する( setDefaultRenderersetDefaultEditor
于 2011-06-20T10:05:09.083 に答える