Java 防止复选框在JTable中移动
我在JTable中有一列,其中单元格呈现为以下复选框: 如何防止每次单击复选框时复选框移动?这是我的单元渲染器和单元编辑器:Java 防止复选框在JTable中移动,java,swing,jtable,jcheckbox,Java,Swing,Jtable,Jcheckbox,我在JTable中有一列,其中单元格呈现为以下复选框: 如何防止每次单击复选框时复选框移动?这是我的单元渲染器和单元编辑器: protected class CheckBoxCellRenderer extends JCheckBox implements TableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean is
protected class CheckBoxCellRenderer extends JCheckBox implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
this.setSelected((Boolean) tableModel.getValueAt(row, 0));
return this;
}
}
protected class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener {
private final CheckBoxCellRenderer cell = new CheckBoxCellRenderer();
private int row;
public CheckBoxCellEditor() {
cell.addActionListener(this);
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) {
cell.setSelected(((Boolean) value).booleanValue());
row = rowIndex;
return cell;
}
@Override
public Object getCellEditorValue() {
return cell.isSelected();
}
}
谢谢 不要创建自定义渲染器/编辑器
JTable已经支持默认呈现程序。只需重写TableModel或JTable的getColumnClass(…)方法,为第一列返回Boolean.class,JTable将使用默认的呈现器/编辑器。要更快获得更好的帮助,请发布一个。