У меня есть таблица со столбцом JButton.Как удалить Jbutton из таблицы
я установить рендерер следующим
TableColumn col = colModel.getColumn(3);
col.setCellRenderer(new MyRenderer("Del"));
col.setCellEditor(new MultiTradeCellEditor(new JCheckBox()));
рендерер и cellEditor классы
class MyRenderer extends JButton implements TableCellRenderer{
public MyRenderer(String text){
super(text);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
return this;
}
}
}
CellEditor класс
class MultiTradeCellEditor extends DefaultCellEditor{
protected JButton button;
public MultiTradeCellEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton("Del");
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectionList.getList().remove(table.getSelectedRow());
table.repaint();
}
});
}
}
Когда я удалить строку из таблицы. Я делаю model.remove (table.getSelectedRow()). Он удаляет строку, кроме JButton. Я предполагаю, что кнопка является частью компонента Renderer, поэтому он не удаляется. Как я могу это сделать?
Да, но кешируйте ссылку на JButton и JLabel и каждый раз возвращайте один и тот же, а не выделяя новую. –
@Devon - Я ленив при кодировании без IDE :) – willcodejavaforfood