gpt4 book ai didi

java - 更改 JTable 的外观

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:53 31 4
gpt4 key购买 nike

我有一个 JTable,需要更改它的一些属性,例如它的高亮颜色。

This website表示表格中有“highlight”、“light”等字段。

enter image description here

我到处都找不到。当您创建 JTable 的实例时,智能感知中不会显示任何涉及“突出显示”或“灯光”的内容。 (但是一些方法如 table.setFont() 确实出现了)。

但是我确实注意到了 table.setUI(); 但我不知道如何使用它,或者它是否与此有关。

我真正想要的是当你将鼠标悬停在它上面时让一行改变它的颜色,我不确定 Highlight 是否会这样做或者我是否必须去通过实现 mouseListener 有很长的路要走。不过,我仍然希望能够更改其他 L&F 设置。

最佳答案

我不确定下面的代码是否有效,因为我从我的一个旧项目代码的一些 block 中抓取并修改了它,但你可以试试。

public class MyTable extends JTable implements MouseMotionListener {
int mouseHoverRow = -1;

public MyTable() {
addMouseMotionListener(this);
}

//codes

public Component prepareRenderer(TableCellRenderer renderer, int rowIndex,
int vColIndex) {
Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
Color back = getSelectionBackground();
int red = back.getRed();
int green = back.getGreen();
int blue = back.getBlue();
if (rowIndex == mouseHoverRow) {
c.setBackground(Color.LIGHT_GRAY);
} else {
c.setBackground(getBackground());
}
return c;
}

public void mouseMoved(MouseEvent e) {
Point p = new Point(e.getX(), e.getY());
mouseHoverRow = rowAtPoint(p);
}

关于java - 更改 JTable 的外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037529/

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