当前位置: 首页 > 面试题库 >

将所有JTable单元格设置为不可选择

洪楚
2023-03-14
问题内容

我正在尝试创建一个仅显示数据且不允许进行任何编辑或选择的JTable。我通过运行将所有单元格设置为不可编辑:

TableModel model = new DefaultTableModel(data, titles) {
    public boolean isCellEditable(int rowIndex, int mColIndex) {
        return false;
    }
};

但是我现在也尝试使所有单元格都无法选择。我发现该setRowSelectionAllowed方法允许我在选择单元格时禁用整个行的选择,但这并没有阻止该单元格的选择。我浏览了的方法,DefaultTableModel但没有任何isCellSelectable方法。有什么建议?


问题答案:

除了返回falseisCellEditable(),添加这些调用。

table.setFocusable(false);
table.setRowSelectionAllowed(false);


 类似资料:
  • 问题内容: 我有一个无法解决的问题。 众所周知,我对使用JTables还是比较陌生,所以答案可能很简单,但是我找不到解决方案:/ 所以,我有一个使用AbstractTableModel的JTable,它重写了 方法,以告知要显示的每一列的类型。其中之一是布尔值。 当我创建一个简单的JTable时,使用 一切都很好,并且使用复选框(开/关)可以正确显示布尔值。 现在,我想将文本放在每个单元格的中心(

  • 我有个问题无法解决。 一切都很好,并且使用复选框(ON/OFF)正确显示布尔值。 现在,我想将文本居中放在每个单元格上(稍后可能还有更多选项)。 因此我为每个列定义了一个新的DefaultTableCellRenderer,如下所示: 编辑:谢谢你的所有澄清。事实上,我真正的问题是:“如何影响JTable的所有DefaultRenderer,使它们将结果集中在JTable的单元格中。”

  • 我在这里看了几篇文章,但找不到答案。 我已经成功地将JComboBox添加到Jtable单元格中。但是,所选项目没有被“记住”。 更具体地说: 澄清一下,信息并没有丢失。虽然组合框没有直观地显示选择了什么设备,但选择是保存的。然而,我希望用户能够直观地看到他们刚刚选择的内容,而不必再次选择行。 这使我相信我使用的自定义呈现器一定有错误 呈现器:

  • 问题内容: 我想让可编辑JTables中的编辑器在开始编辑时选择单元格中的所有文本。我已经尝试了几件事,都是围绕从TableCellEditor.getTableCellEditorComponent方法返回的组件上调用JTextComponent.selectAll()进行的。我尝试过的所有方法均无济于事。 在最近的尝试中,我从Swing教程更改了SimpleTableDemo类,以使用自定义T

  • 问题内容: 即将选择单元格时,是否会触发任何事件?有ListSelectionListener,但是它具有仅在选择发生后才触发的事件。我需要某种方法来取消选择事件,并且使用ListSelectionListener并不容易,因为选择已经发生,并且我需要具有一些状态变量来指示选择是正常的还是取消先前的选择。 有没有办法关闭选择通知?但是,这不是100%好的解决方案(如果某些侦听器将选择状态保存在本地