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)。