java - 使用 HTML 文本更改禁用 Java 按钮的文本颜色

标签 java swing

我有一个带有多行文本的java swing按钮,我使用<HTML>标签如下:

button.setText("<html><center><font color = white>Reset<br>Diagram</font></html>");

但是当我设置button.setEnabled(false);时,文字颜色变为浅蓝色,而其余按钮没有<HTML>禁用时标签的文本颜色为灰色。

我尝试使用 UIManager,但它仅适用于没有 <HTML> 的按钮标签:

UIManager.put("Button.disabledText", new ColorUIResource(Color.GRAY));

有什么办法可以解决这个问题吗?

最佳答案

使用 html formatting 禁用 Swing 组件使用通过键“textInactiveText”从 UIManager 获取的统一前景色。该 key 是作为 JDK-4783068 的修复而引入的- 进一步细化以允许在 JDK-7150926 中拒绝每个组件禁用的颜色.

显然该值取决于LaF - 由Metal(实际上是海洋主题)配置的浅蓝色(仅?)。应用程序可以替换默认设置,例如使用标准按钮的禁用文本颜色

UIManager.put("textInactiveText", UIManager.get("Button.disabledText"));

或硬编码颜色

UIManager.put("textInactiveText", new ColorUIResource(Color.GRAY));

对于 Metal,我们还可以实现并使用自定义主题,该主题从其 getInactiveSystemTextColor() 返回颜色。

关于java - 使用 HTML 文本更改禁用 Java 按钮的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75290674/

相关文章:

java - 为 OPTIONS 请求禁用自动 Wadl 生成

java - 将数据从服务器传输到 servlet

java - 默认单元格编辑器类查询?

java - 为什么 JavaFX 文档与 Java 8 文档分开?

java - 如何将对象设置在画面中央?

java - 如何将静态 Icon 与动画 Icon 结合起来

java - MVC注解 Spring MVC <mvc :annotation-driven/>

java - Groovy 约定 : Where do I put metaClass definitions?

java - Maven 中的集成测试问题

java - 其他 JFrame 中的 JTextArea 显示实时控制台输出