JTable行选择的问题

时间:2015-08-16 23:43:22

标签: java swing jtable abstracttablemodel

我正在使用自定义JTable和AbstractTableModel,但在突出显示/选择行时遇到了一些有趣的行为。

好的,在启动时我的表看起来像这样,这很好:

enter image description here

但不幸的是,选择一行会给我这样的:
enter image description here
这有两种方式:

  1. 当可编辑"布尔"中的一行时单击列,在整个行突出显示之前有一个类似上图的快速闪烁。

  2. 当在"布尔"中单击行的正下方的行分隔符时柱。在这种情况下,表格保持与上图类似,直到选择了另一行。

1 个答案:

答案 0 :(得分:2)

JTable在内部由TableModel内部使用BooleanRenderer Boolean.class类型 @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { … if (isSelected) { setForeground(table.getSelectionForeground()); setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } return …; } ,但不会出现此行为。典型的render基于当前外观和指定的默认值来调整前景色和背景色。感觉。概括地说,您的(假定为自定义)渲染器需要执行以下操作:

pyuic4 Mainwindow.ui > MainWindow.py

看到一个完整的例子implementation