将actionlistener添加到java中的jcheckbox

时间:2011-06-20 10:00:09

标签: java swing jtable actionlistener jcheckbox

我使用以下代码生成一个包含三列和三行的表,第一列包含复选框,第二列只包含单词: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;
                }
              }
            }

如何将actionlisteners添加到此表中生成的复选框?

1 个答案:

答案 0 :(得分:3)

您必须定义自定义单元格表格渲染器和编辑器,并将动作侦听器添加到渲染的组件。 看看这个thread。 这example对我非常有帮助。

简而言之,你必须:

  1. 实现某处TableCellRenderer界面(定义列的呈现方式)
  2. 实现某处TableCellEditor界面(定义列的编辑方式)
  3. 向您的JTable添加所需的渲染器和编辑器(setDefaultRenderersetDefaultEditor