JButton.setBackground函数无法正常工作

时间:2014-11-04 23:47:50

标签: java jbutton setbackground

这实际上是我的代码。

JButton but = new JButton("=");
but.setOpaque(true);
if (but.getText() == "=")
{
    but.setForeground(Color.WHITE);
    but.setBackground(Color.BLUE);
    but.addActionListener(listen);
    but.setPreferredSize(new Dimension(30, 30));
    numberZone.add(but);
}

setForeground是有效的,但不是setBackground。 我尝试使用setOpaque函数,但没有任何改变。 我在mac OSX系统上。我不知道它是否重要。

感谢和抱歉我的英语错误。

1 个答案:

答案 0 :(得分:2)

<强> 警告!!!

永远不要使用==比较字符串,因为==比较一个对象引用是否与另一个对象引用相同,这在大多数情况下对您不感兴趣。比较字符串时,您通常想知道两个字符串是否具有相同顺序的相同字符。所以请使用if (string1.equals(string2))if string1.equalsIgnoreCase(string2))

你也在检查String的文本,看起来是创建代码而不是在ActionListener或其他一些让我感到困惑的事件触发代码。

这里你要做

// in your ActionListener
public actionPerformed(ActionEvent e) {
   if ("=".equals(e.getActionCommand()))  {
       // here your Strings are ==
   }
}