猿问

Java:如何更改 JTable 拖放线颜色?

我目前正在尝试在具有高度定制的 UI 的 JTable 中启用拖放功能。当对表行进行拖放事件时,将在该行被拖放的位置出现一条线(这条线是由 Java 绘制的)。我目前正在尝试弄清楚如何更改该目标线/下降线的颜色,但我不确定如何做到这一点。谁能指出我该往哪里看的正确方向,或者我该如何做到这一点?

下面是 JTable 的屏幕截图。由于某种原因,我的光标没有在屏幕截图中捕获,但我放置光标的单元格是以我想要的线条颜色绘制的。对于最左边的单元格和最右边的单元格,某些单元格的颜色原因是蓝色的。

MMTTMM
浏览 95回答 1
1回答

达令说

找到了答案...天哪,这让我想起了为什么我认为 Java Swing 是 Java 中一个非常蹩脚的领域。如果您想为应用程序中的每个 JTable 更改它,您可以使用 UIManager 设置下拉线的颜色:UIManager.put("Table.dropLineColor", Color.cyan);UIManager.put("Table.dropLineShortColor", Color.cyan);如果您只想为一张表设置它,那么您必须为您的表设置自定义 UI:myTable.setUI(new CustomTableUI());然后,CustomTableUI 确保在 UIManager 中,在绘制线条之前更改 dropLine 的默认颜色。之后,恢复默认值:private class CustomTableUI extends BasicTableUI {    @Override    public void paint(Graphics g, JComponent c) {        // Store defaults        Color dropLineColor = UIManager.getColor("Table.dropLineColor");        Color dropLineShortColor = UIManager.getColor("Table.dropLineShortColor");        // Set your custom colors here        UIManager.put("Table.dropLineColor", Color.cyan);        UIManager.put("Table.dropLineShortColor", Color.cyan);        // Allow the table to be painted        super.paint(g, c);        // Restore the defaults        UIManager.put("Table.dropLineColor", dropLineColor);        UIManager.put("Table.dropLineShortColor", dropLineShortColor);    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答