e.getSource 跳棋游戏中的按钮不起作用。图形用户界面
e.getSource Buttons in a Checkers game are not working. GUI
我正在使用 DrJava 编程。所有这些代码都属于 GUI 中执行的操作部分。
除了那 2 个 e.getSource 按钮外,这里的一切都正常工作。
这两个语句是 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));
}
}
}
}
}
}
谢谢。
首先你有这张支票:
if (e.getSource()==b[a])
然后如果该条件为真,您将进行此检查:
if (e.getSource()== b[a-9])
这不可能是真的,因为同一个按钮不能同时等于按钮 (a) 和 (a-9)。
同(a-7)条件。它永远不能同时等于 (a) 和 (a-7)。
我正在使用 DrJava 编程。所有这些代码都属于 GUI 中执行的操作部分。
除了那 2 个 e.getSource 按钮外,这里的一切都正常工作。
这两个语句是 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));
}
}
}
}
}
}
谢谢。
首先你有这张支票:
if (e.getSource()==b[a])
然后如果该条件为真,您将进行此检查:
if (e.getSource()== b[a-9])
这不可能是真的,因为同一个按钮不能同时等于按钮 (a) 和 (a-9)。
同(a-7)条件。它永远不能同时等于 (a) 和 (a-7)。