我正在使用自定义JTable和AbstractTableModel,但在突出显示/选择行时遇到了一些有趣的行为。
好的,在启动时我的表看起来像这样,这很好:
当可编辑"布尔"中的一行时单击列,在整个行突出显示之前有一个类似上图的快速闪烁。
当在"布尔"中单击行的正下方的行分隔符时柱。在这种情况下,表格保持与上图类似,直到选择了另一行。
答案 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。