如何为 JFrame 标题栏中的文本着色

问题描述 投票:0回答:1

我有一个控制硬件的应用程序,当用户想要“后门”访问硬件时,会显示一个 JDialog。 JDialog 充满了按钮和功能,我不想增加它的大小,尤其是垂直方向的大小。我确实想添加警告文本,以便警告一些新用户不要使用按钮,因为做错事可能会损坏硬件。添加用户必须关闭的对话框不是一个选项。

标题中有空间我想使用,所以我将其更新为: 这很酷,但我想通过将警告文本设置为红色来强调它,如下所示: 我尝试过使用在 JLabel 中工作的 HTML 标签,但 setTitle() 方法无法识别它们,只是将它们放入标题中。

我想使用图标,所以我创建了一个带有红色文本的长矩形并调用了 setIconImage(): 该图标在那里,但调整大小以适合正方形。 (看左上角。我笑了,然后叹了口气)

我在网络上搜索找到的唯一解决方案是创建自己的 LookAndFeel,但我不想涉及其中,因为对于红色文本来说似乎有点过分了。

有没有一种方法可以像处理 JLabel 一样操作标题中的文本?

过去我曾考虑过将标题空间用于经常使用的控件,但不知道如何操作。例如,Microsoft Excel 现在在电子表格上有一个保存图标和一个搜索文本框。 (Javafx有这个功能吗?)

java swing jframe
1个回答
0
投票

自定义对话框标题面板:您可以在 JDialog 的顶部创建一个类似于标题栏的自定义面板,这样您就不必仅依赖标题栏。接下来,将警告文本添加到此面板并根据需要设置其样式,在其他自定义选项中将文本颜色更改为红色。

自定义外观和感觉:正如您所指出的,可以创建自定义外观和感觉(L&F),但即使对于非常基本的自定义(例如更改标题文本的颜色),它也可能相当复杂。如果您选择此操作过程,您可以通过扩展 BasicLookAndFeel 类并重写相关方法来研究自定义标题呈现。

© www.soinside.com 2019 - 2024. All rights reserved.