добавление actionlistener для jcheckbox в Java - PullRequest
2 голосов
/ 20 июня 2011

Я использую следующий код для создания таблицы с тремя столбцами и тремя строками, первый столбец содержит флажки, а второй столбец просто содержит слово: строка 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 Ответ

3 голосов
/ 20 июня 2011

Вы должны определить свои собственные средства визуализации и редакторы таблиц ячеек и добавить слушатель действия к отображаемым компонентам. Взгляните на эту тему . Этот пример очень помог мне.

В нескольких словах вы должны:

  1. реализовать где-нибудь TableCellRenderer интерфейс (определить, как будет отображаться ваш столбец)
  2. реализовать где-нибудь TableCellEditor интерфейс (определить, как будет редактироваться ваш столбец)
  3. добавление к вашему JTable нужного средства визуализации и редактора ( setDefaultRenderer , setDefaultEditor )
...