我用可以禁用的按钮制作了一个 GUI。如果按钮被禁用,则文本颜色将变为灰色。在我的电脑上一切正常,但我在不同的电脑上尝试过(两者都有 win 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" />
正如我所说,在我的电脑上这段代码工作正常。另一方面不是。提前致谢