나는 열이 JButton 인 테이블이 있습니다. I 테이블로부터 열을 제거 할 때 렌더러 cellEditor가 클래스테이블에서 Jbutton을 제거하는 방법
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();
}
});
}
}
있다
TableColumn col = colModel.getColumn(3);
col.setCellRenderer(new MyRenderer("Del"));
col.setCellEditor(new MultiTradeCellEditor(new JCheckBox()));
다음
난 렌더러 설정. 나는 model.remove (table.getSelectedRow())를 수행한다. JButton을 제외한 행을 제거합니다. 그 단추가 렌더러 구성 요소의 일부라고 가정하므로 제거되지 않습니다. 어떻게 할 수 있습니까?
예, 있지만 JButton 및 JLabel에 대한 참조를 캐시하고 새 것을 할당하는 대신 매번 동일한 것을 반환합니다. –
@Devon - IDE없이 코딩 할 때 게으르다. :) – willcodejavaforfood