我正在使用DrJava进行编程。所有这些代码都属于GUI中执行的操作部分。
除了那两个e.getSource按钮之外,这里的所有内容都正常工作。
2个陈述是if(e.getSource()== b[a-9]
)和if(e.getSource()== b[a-7]
)。
我为每个按钮添加了动作侦听器。
当我点击按钮时,没有执行任何操作。
我放了一个System.out.println来查看它们是否有效,但是一旦点击它,它也没有将它打印到屏幕上。
这显然意味着他们不能正常工作,但为什么呢?如果你想要整个代码尝试,请问我,我会给你。这是我11年级的CPT。
if(player==1)
{
for(int a=41; a<64; a++)
{
if (e.getSource()==b[a])
{
board();
b[a].setBackground(new Color(0,255,0));
if(!b[a].getText().equals(b[a-9].getText())&&!b[a].getText().equals(b[a-7].getText()))
{
b[a-9].setBackground(new Color(0,255,0));
b[a-7].setBackground(new Color(0,255,0));
//THIS IS NOT WORKING____________________________________
if (e.getSource()== b[a-9])
{
System.out.println("NOT WORKING");
b[a-9].setText(piece1);
b[a].setText("");
board();
player2();
player=2;
}
if (e.getSource()== b[a-7])
{
System.out.println("NOT WORKING");
b[a-7].setText(piece1);
b[a].setText("");
board();
player2();
player=2;
}
//___________________________________________________________
if(e.getSource()==b[47])
{
board();
b[47].setBackground(new Color(0,255,0));
if(!b[47].getText().equals(b[47-9].getText()))
{
b[47-9].setBackground(new Color(0,255,0));
}
}
if(e.getSource()==b[48])
{
board();
b[48].setBackground(new Color(0,255,0));
if(!b[48].getText().equals(b[48-7].getText()))
{
b[48-9].setBackground(new Color(0,255,0));
}
}
}
}
}
}
谢谢。
答案 0 :(得分:0)
首先你有这个检查:
if (e.getSource()==b[a])
如果该条件为真,则进行此检查:
if (e.getSource()== b[a-9])
那永远不会是真的,因为同一个按钮不能同时等于按钮(a)和(a-9)。
与(a-7)条件相同。它永远不能同时等于(a)和(a-7)。