2014-11-04 128 views
-1

这实际上是我的代码。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系统上。我不知道这是否重要。

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

回答

2

警告!!!

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

您还正在检查字符串的文本,看起来不是ActionListener中的创建代码或其他一些事件触发的代码,这些代码会让我感到困惑。

在这里,你会怎么做

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

你是对的大约相等的功能。我尝试过,但setBackground函数总是不起作用。 – gillioa 2014-11-05 00:04:01

+0

@gillioa:显示更多代码和背景信息。最好的代码是[mcve](http://stackoverflow.com/help/mcve)。 – 2014-11-05 00:16:17