Подскажите как сделать обработчик события завершения редактирования ячейки таблицы...
Если у кого есть ссылки на литературу вообще по событиям таблицы в целом буду благодарен...
События JTable
Модератор: Absurd
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
CellEditor.addCellEditorListener(new CellEditorListener(){
public void editingCanceled(ChangeEvent e) {}
public void editingStopped(ChangeEvent e) {}
});
public void editingCanceled(ChangeEvent e) {}
public void editingStopped(ChangeEvent e) {}
});
Oscar, спасибо!
Не могу понять...
Пробовал так
ругается java.lang.NullPointerException
что делаю не правильно?
Пробовал так
Код: Выделить всё
TableColumn column = mainTable.getColumnModel().getColumn(3);
column.getCellEditor().addCellEditorListener(
new CellEditorListener() {
public void editingCanceled(ChangeEvent e) {}
public void editingStopped(ChangeEvent e) {}
}
);
что делаю не правильно?
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
keo,
по умолчанию column.getCellEditor() равен null (см. api doc),
и если он равен нулю, то используется DefaultCellEditor (в зависимости от класса обьекта, хранящегося в ячейке).
Таким образом есть следующие два варианта:
1. column.setCellEditor(new DefaultCellEditor(new JTextField())); // или же свой собственный эдитор, а дальше, как ты написал.
этот способ требует нового эдитора, и работает для всей колонки
2. tableCellEditor = table.getDefaultEditor(String.class); // tableCellEditor.addCellEditorListener .....
этот способ не требует нового эдитора и работает для всех ячеек таблицы, с обьектами класса String
И ещё один подход:
3. TableCellEditor tableCellEditor = table.getCellEditor(0, 0); //tableCellEditor.addCellEditorListener...
работает для конкретной ячейки
// можно сделать в цикле для всей колонки,
// но если таки нужна колонка, то лучше уж первый способ использовать, ИМХО
по умолчанию column.getCellEditor() равен null (см. api doc),
и если он равен нулю, то используется DefaultCellEditor (в зависимости от класса обьекта, хранящегося в ячейке).
Таким образом есть следующие два варианта:
1. column.setCellEditor(new DefaultCellEditor(new JTextField())); // или же свой собственный эдитор, а дальше, как ты написал.
этот способ требует нового эдитора, и работает для всей колонки
2. tableCellEditor = table.getDefaultEditor(String.class); // tableCellEditor.addCellEditorListener .....
этот способ не требует нового эдитора и работает для всех ячеек таблицы, с обьектами класса String
И ещё один подход:
3. TableCellEditor tableCellEditor = table.getCellEditor(0, 0); //tableCellEditor.addCellEditorListener...
работает для конкретной ячейки
// можно сделать в цикле для всей колонки,
// но если таки нужна колонка, то лучше уж первый способ использовать, ИМХО
Спасибо, буду пробовать!