Java Windows UIManager
我正在尝试使用java中的UIManager使所有弹出式GUI和错误GUI使用相同的颜色。问题是,在使用windows样式时,我似乎无法更改按钮的颜色,也无法更改GUI的标题栏
代码:很简单,我打电话给UIManager。getLookAndFeelDefaults()。放置(“Button.background”,buttonColor)和一些其他UI更改。没什么大不了的
你可以在下面搜索框中键入要查询的问题!
我正在尝试使用java中的UIManager使所有弹出式GUI和错误GUI使用相同的颜色。问题是,在使用windows样式时,我似乎无法更改按钮的颜色,也无法更改GUI的标题栏
代码:很简单,我打电话给UIManager。getLookAndFeelDefaults()。放置(“Button.background”,buttonColor)和一些其他UI更改。没什么大不了的
# 1 楼答案
如果您正在使用
JOptionPane
您可以使用此格式更改标题以使用自己的标题
JOptionPane.showMessageDialog(null, "This is the message", "This is the title", JOptionPane.YES_NO_OPTION);
要设置对话框的背景色,请执行以下操作-
要更改对话框中的按钮或其他所有内容,请创建自己的JDialog并设置所需的按钮特征
# 2 楼答案
对于JOptionPane对话框中按钮的颜色,我不明白为什么它不起作用。应该这样。可能是副作用。我们没有看到你所有的代码
试试这个简单的代码,你应该只看到绿色的按钮
对于标题中的白色背景,您有一种颜色(白色),因此它似乎可以工作。可能是键值中的问题。 如果你想让我们更好地理解,请把它贴出来
编辑
看到你的代码后,我明白了你的问题。这是使用的外观和感觉。 您不使用默认的外观(金属)
也许,你不知道,但所有的外观和感觉在摇摆不平等的出生
实际上,某些选项和混合选项受某些外观支持,但不受其他外观支持
如果使用默认的外观,那么兼容性问题应该会少一些
要知道它是否得到了正确支持,最好的方法是向一些官方文档报告,但关于它的许多信息确实是枯燥的,有错误的,而且不详细
在您在注释中发布的链接:http://nadeausoftware.com/articles/2008/11/all_ui_defaults_names_common_java_look_and_feels_windows_mac_os_x_and_linux#Button中,表中显示的键并不意味着值存在或可修改,而是只有键存在于LAF中
每个LAF负责考虑或不考虑键以及更改键相关值的可能性
我试着用WindowsLAF只设置背景色按钮,它也不起作用。因此,这似乎不是一个副作用,但它看起来更像是缺少对WindowsLAF这一功能的支持
无论如何,如果你想要一个正式的、漂亮的、更新的、比经典的金属外观更灵活的外观,你可以对Nimbus感兴趣。 Nimbus document
它是从JavaSE6更新10开始提供的
我同意你的看法,金属很难看。但是为什么不使用nimbus而不是windows LAF呢?太棒了。我试过你的代码,它用Nimbus修改了lAF的一些值,看起来效果不错。也许,你可以有一些小的修改来调整它,但基础应该是好的