3

我按照网上某处的指示在 JTable 中插入复选框。这是我这样做的代码:

  protected class JTableCellRenderer implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
      JCheckBox rendererComponent = new JCheckBox();
      rendererComponent.setSelected((Boolean) tableModel.getValueAt(row,
        column));
      return rendererComponent;
    }

  }

我设法将复选框添加到 JTable,但是当我运行我的程序时,我得到以下行为:

在此处输入图像描述

当用户单击复选框时,如何允许用户选中复选框,而不是从下拉菜单中选择 True 或 False?谢谢!

4

1 回答 1

6

您遵循的方向很糟糕,因为无需摆弄渲染器或编辑器(顺便说一句,您的问题是您更改了渲染器而没有更改编辑器)。您所要做的就是在您的 TableModel 类中,覆盖该getColumnClass(int index)方法并让它为需要复选框的列返回 Boolean.class。就是这样。JTable 将自动为列的渲染器和编辑器使用复选框,以非常简单的方式解决您的问题。当然,不言而喻,该列的数据必须是布尔值才能正常工作。

关于 JTables 的 Oracle 教程将告诉您所有这些以及更多内容:如何使用表

于 2011-09-14T03:04:20.477 回答