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 回答