我正在使用drjava进行编程。所有这些代码都属于在GUI中执行的操作。
除了那两个E.GetSource按钮外,这里的所有内容都正常工作。
2个语句是IF(e.getSource()== b[a-9]
)和IF(e.getSource()== b[a-7]
)。
我在每个按钮中添加了动作听众。
当我单击按钮时,没有执行操作。
我放了一个system.out.println来查看它们是否有效,但是一旦单击,它也不会将其打印到屏幕上。
这显然意味着他们不起作用,但是为什么呢?如果您希望整个代码尝试,请询问,我将其交给您。这是我的11年级。
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));
}
}
}
}
}
}
谢谢。
首先您有此检查:
if (e.getSource()==b[a])
那么,如果该条件为TRUE,您有此检查:
if (e.getSource()== b[a-9])
嗯,这永远是不正确的,因为同一按钮不能同时等于按钮(a)和(a-9)。
与(A-7)条件相同。它永远不能同时等于(a)和(a-7)。