作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义 ButtonUI 类来绘制按钮。在绘制文本之前,paint 方法会检查按钮是否已设置自定义颜色,以便使用它来代替 UIDefaults#get("Button.foreground")。
if ((b.getForeground() != null)) {
colText = b.getForeground();
}
查看 java.awt.Component 类会产生一个问题:
public Color getForeground() {
Color foreground = this.foreground;
if (foreground != null) {
return foreground;
}
Container parent = this.parent;
return (parent != null) ? parent.getForeground() : null;
}
因此,检查按钮的 getForeground() 是否为 null 并没有多大帮助,因为它会返回按钮所在组件的前景色。
问题是:如何检查按钮是否已明确设置自定义前景色?
在按钮上放置一个 PropertyChangedListener 可能是一个解决方案,但我以某种方式认为必须有一个更简单的方法。
最佳答案
在Component
中,您可以找到isBackgroundSet()
方法。
关于java - 获取 JButton 的显式设置前景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2371767/
我是一名优秀的程序员,十分优秀!