【问题标题】:Color of JOptionPane borderJOptionPane 边框的颜色
【发布时间】:2026-01-23 16:00:01
【问题描述】:

我该如何更改JOptionPane's border 的颜色?

这是我说的边框截图:

那个蓝色边框是我想要摆脱的。

我尝试为 LookAndFeel 设置UIManager.put("OptionPane.border", new BorderFactory...),但这改变了内部边框,而不是最外面的边框。

我需要去掉那个蓝色边框。

有什么想法吗?

-马克

【问题讨论】:

    标签: java swing border joptionpane look-and-feel


    【解决方案1】:

    阅读JOptionPane API。它向您展示了如何手动创建 JOption 窗格,以便您可以访问 JDialog。拥有 JDialog 后,您可以像在上一个问题中一样删除边框:

    Undecorated JDialog border

    【讨论】:

    • 完美,不知道这是可能的。谢谢。
    【解决方案2】:

    这几天研究了一下,终于发现这段代码对你有帮助!

    UIManager.put("RootPane.frameBorder", new LineBorder(Color.red));
    UIManager.put("RootPane.dialogBorder", new LineBorder(Color.red));    
    UIManager.put("RootPane.errorDialogBorder", new LineBorder(Color.red));
    

    【讨论】:

    • 你能解释一下代码吗?它可能会以这种方式更多地帮助 OP 或未来的用户。
    • 我阅读了alloy.jar的源代码,它的JOptionPane边框颜色总是红色表示错误或黄色表示警告。这些代码告诉我们如何改变它的颜色。
    【解决方案3】:

    在 LaF 部分有 ShadowPopupBorder 的初始化,用于工具提示、弹出窗口和模式对话框边框。因此,请检查它是否在您的软件中使用

    【讨论】: