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

标签 java swing user-interface jtable

我目前正尝试在具有高度自定义 UI 的 JTable 中启用拖放功能。在做表格行的拖放事件时,会在要拖放行的地方出现一条线(这条线是Java画的)。我目前正在尝试弄清楚如何更改此目标线/下降线的颜色,但我不确定该怎么做。任何人都可以指出正确的方向,告诉我在哪里看,或者我该怎么做吗?

下面是 JTable 的屏幕截图。出于某种原因,屏幕截图中没有捕获我的光标,但是我将光标所在的单元格绘制成我希望线条所在的颜色。对于最左边的单元格和最右边的单元格,一些颜色原因是蓝色的。

enter image description here

最佳答案

找到答案了……天哪,这让我想起了为什么我认为 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);
    }

}

关于Java:如何更改 JTable 拖放 dropLine 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032762/

相关文章:

java - 未找到添加到 .jar 的属性

java - 在android 4中设置可滚动的壁纸

java - JMH 中迭代次数和 fork 次数之间的正确平衡

java - 从另一个 UI 获取信息

java - JTextField:如何限制字符数?

java - 如何使用 JButton 在 eclipse 上打开一个小输入框

delphi - 是否可以确定 dbEdit 中的文本是否比可见文本长?

java - 将 JComponent 添加到 JPanel 并将 JPanel 添加到 JFrame 不起作用

Javascript - GUI 编程

c++ - 按钮 gtkmm-3.0 的右键单击信号