gpt4 book ai didi

java - 我怎样才能关注 JTable 的整行?

转载 作者:行者123 更新时间:2023-11-29 06:14:45 26 4
gpt4 key购买 nike

我有一个 JTable,它在 Java Swing 应用程序中显示一些记录。用户只能处理整行,而不处理单个单元格。有什么方法可以让我专注于 JTable 的整行?默认是只关注用户点击的单元格。我为焦点使用了不同的颜色,因此如果只聚焦一个单元格而不是整行,它看起来不太好。

更新:这是我当前的自定义 TableCellRenderer 代码,问题是当一行具有焦点并用“焦点”颜色绘制时,然后JTable 失去焦点,只有获得焦点的 cell 重新绘制为“选定”颜色,但选定行中的所有单元格都应重新绘制为“选定”颜色。

@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {

// Has any cell in this row focus?
if(table.getSelectedRow() == row && table.hasFocus()) {
hasFocus = true;
}

if (hasFocus) {
this.setBackground(CustomColors.focusedColor);
} else if (isSelected) {
this.setBackground(CustomColors.selectedColor);
} else {

// alternate the color of every second row
if(row % 2 == 0) {
this.setBackground(Color.WHITE);
} else {
this.setBackground(CustomColors.grayBg);
}
}

setValue(value);

return this;

}

最佳答案

听起来你在找 the setRowSelectionAllowed() method .

既然你说只改变颜色就足够了,你可能想看看 custom cell renderer section的 Swing 教程。您只需设置逻辑来检查给定单元格是否在选定行中,并相应地绘制背景颜色。

关于java - 我怎样才能关注 JTable 的整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com