为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMTTMM 2023-08-16 16:33:25
我目前正在尝试在具有高度定制的 UI 的 JTable 中启用拖放功能。当对表行进行拖放事件时,将在该行被拖放的位置出现一条线(这条线是由 Java 绘制的)。我目前正在尝试弄清楚如何更改该目标线/下降线的颜色,但我不确定如何做到这一点。谁能指出我该往哪里看的正确方向,或者我该如何做到这一点?下面是 JTable 的屏幕截图。由于某种原因,我的光标没有在屏幕截图中捕获,但我放置光标的单元格是以我想要的线条颜色绘制的。对于最左边的单元格和最右边的单元格,某些单元格的颜色原因是蓝色的。
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

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

    }


}


查看完整回答
反对 回复 2023-08-16
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号