颜色检查语句是否无效

时间:2013-12-03 16:43:46

标签: java colors objectoutputstream

好的,所以我有一个if语句检查选择的JPanel是否是某种颜色,第2行打印为false,第4行和第5行打印出所选面板的颜色和我正在检查的颜色 - 这正是同样 - 红色,第14行打印,第15行和第17行不打印。奇怪的是我知道代码有效,这个bug只发生在我使用objectoutputStreams包含连接时才会发生这种情况。 objectoutputstream包含一系列颜色然后显示,颜色可能会受到序列化的影响?但它们在第4和第5行打印出来。

public void mouseClicked(MouseEvent e){ 
        System.out.println(squareSelected);             line2
        JPanel currentPanel = (JPanel) e.getSource();
        System.out.println(whosTurn[0]);                  line 4
        System.out.println(currentPanel.getBackground());  line 5
        if(squareSelected){
            for(int i = 0; i < 64; i++){
                if(squares[i] == currentPanel){
                    currentSquarePosition = i;
                    i = 63;
                }
            }
        }
        if(!squareSelected)System.out.println("y");
        if(currentPanel.getBackground() == Color.RED)System.out.println("d");   
        if(!squareSelected && (currentPanel.getBackground() == whosTurn[0] ||  line 16 currentPanel.getBackground() == whosTurn[1])){     // line 16
            System.out.println("1");

1 个答案:

答案 0 :(得分:1)

尝试使用equals方法。

if(currentPanel.getBackground().equals(Color.RED))System.out.println("d");   
if(!squareSelected && (currentPanel.getBackground().equals(whosTurn[0]) ||  currentPanel.getBackground().equals(whosTurn[1]))){     // line 16