Checkers游戏中的E.GetSource按钮不起作用.GUI



我正在使用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)。

最新更新