Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为JButton获取显式设置的前景色_Java_Swing_Look And Feel_Jbutton - Fatal编程技术网

Java 为JButton获取显式设置的前景色

Java 为JButton获取显式设置的前景色,java,swing,look-and-feel,jbutton,Java,Swing,Look And Feel,Jbutton,我有一个自定义ButtonUI类来绘制按钮。在绘制文本之前,paint方法检查按钮是否设置了自定义颜色,以便使用该颜色而不是UIDefaults#get(“button.foreground”) 查看java.awt.Component类会产生一个问题: public Color getForeground() { Color foreground = this.foreground; if (foreground != null) { return foregr

我有一个自定义ButtonUI类来绘制按钮。在绘制文本之前,paint方法检查按钮是否设置了自定义颜色,以便使用该颜色而不是UIDefaults#get(“button.foreground”)

查看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放在按钮上可能是一个解决方案,但我认为一定有一个更简单的方法。

组件中可以找到
isBackgroundSet()
方法。

重写该方法并让它返回这个。前台;或者添加一个新的返回该值的方法。

抱歉,键入时按错了按钮,现在完成。您只能在生成按钮时执行此操作。这可能不是他想要的。
public Color getForeground() {
    Color foreground = this.foreground;
    if (foreground != null) {
        return foreground;
    }
    Container parent = this.parent;
    return (parent != null) ? parent.getForeground() : null;
}