这实际上是我的代码。
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系统上。我不知道它是否重要。
感谢和抱歉我的英语错误。
答案 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 ==
}
}