jbutton文本颜色问题在不同的pc

时间:2012-09-03 09:01:41

标签: java jbutton

我使用可以禁用的按钮创建了一个GUI。如果按钮被禁用,文本颜色将变为灰色。在我的电脑上一切正常,但我尝试了不同的(两个都赢了7.另一台电脑(发生错误的地方)有一个触摸屏,不知道这是否会导致问题,在我的电脑上我有java 6关于问题的计算机java 7)那里,文字颜色保持白色..! 我不知道该怎么做。 这里有一些代码,也许它有帮助(覆盖setEnabled-method):

@Override
public void setEnabled(boolean b)
{
    super.setEnabled(b);
    if(!this.isEnabled()){
        String text = "";
        if(!this.getText().contains("<html>")){
            text = "<html><font color=\"#797C88\">" + this.getText() + "</font></html>";
        }
        else{
            text = this.getText().replaceAll("#[a-fA-F0-9]{6}", "#797C88");
        }

        this.setText(text);
    }
    else{
        String text = "";
        if(!this.getText().contains("<html>")){
            text = "<html><font color=\"#FFFFFF\">" + this.getText() + "</font></html>";
        }
        else{
            text = this.getText().replaceAll("#[a-fA-F0-9]{6}", "#FFFFFF");
        }

        this.setText(text);
    }
}

这是自定义的外观(所有图像都运行良好,在另一台电脑上,所以我认为外观和感觉应该没有错误......):

<style id="button">
    <!-- Shift the text one pixel when pressed -->
    <property key="Button.textShiftOffset" type="integer" value="2" />
    <state>
        <imagePainter method="buttonBackground" path="images/button_normal.png" sourceInsets="10 10 10 10" />
        <font name="Dialog" size="12" />
    </state>
    <state value="PRESSED">
        <imagePainter method="buttonBackground" path="images/button_normal_pressed.png" sourceInsets="10 10 10 10" />
    </state>
</style>
<bind style="button" type="region" key="Button" />

正如我所说,在我的电脑上,这段代码运行正常。在另一个没有。 提前谢谢

2 个答案:

答案 0 :(得分:1)

根据this Bugreport,因为带有HTML文本的Java 7组件在禁用时会使文本变灰。

答案 1 :(得分:0)

而不是使用代码更改字体颜色:

text = "<html><font color=\"#797C88\">" + this.getText() + "</font></html>";

text = this.getText().replaceAll("#[a-fA-F0-9]{6}", "#797C88");

你应该使用:

this.setForeground(Color.GRAY);

并将文字更改为白色:

this.setForeground(Color.WHITE);