跳棋游戏中的e.getSource按钮不起作用。 GUI

时间:2016-12-30 18:09:10

标签: java drjava

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

谢谢。

1 个答案:

答案 0 :(得分:0)

首先你有这个检查:

if (e.getSource()==b[a]) 

如果该条件为真,则进行此检查:

if (e.getSource()== b[a-9])

那永远不会是真的,因为同一个按钮不能同时等于按钮(a)和(a-9)。

与(a-7)条件相同。它永远不能同时等于(a)和(a-7)。