我有一張表格作爲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的引用,並且每次都返回一個引用,而不是分配一個新引用。 – 2010-07-13 20:24:19
@Devon - 編碼時沒有IDE,我很懶惰:) – willcodejavaforfood 2010-07-14 07:30:04