好的,所以我有一个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");
答案 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