当前位置: 代码迷 >> java >> Java中的按钮轮流使用
  详细解决方案

Java中的按钮轮流使用

热度:95   发布时间:2023-08-02 10:51:33.0

我正在制作一个游戏,玩家轮流玩,他们将有一组按钮,每个按钮轮到时都可以单击。 以下是遵循我所说的逻辑的示例代码。 但是发生的是,当我单击“ btn1”时,它会打印三个1,而我仍然可以单击第二个按钮。

 //this loop is in the main
        for(int i=0; i<3;i++){
            if(player==1){
               player1();
            }
           else if (player==2){
              player2();
           }
       }

    public void player1(){
            btn1.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent arg0) {
                    System.out.println("\n1");
                    player=2;
                }});

        }

        public void player2(){
            btn2.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent arg0) {
                    System.out.println("\n2");
                    player=1;
                }});

        }

我知道可能是问题所在,但我不知道该怎么办。

更换循环

for(int i=0; i<3;i++){
        if(player==1){
           player1();
        }
       else if (player==2){
          player2();
       }
   }

只是

player1();
player2();

与其向按钮添加3次相同的侦听器,不如将其添加一次

如果您只想启用和禁用按钮,为什么不做:

    public void player1(){
        btn1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                System.out.println("\n1");
                player=2;
                btn1.setEnabled(false);
                btn2.setEnabled(true);
            }});

    }

    public void player2(){
        btn2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                System.out.println("\n2");       
                player=1;
                btn1.setEnabled(true);
                btn2.setEnabled(false);
            }});

    }       
  相关解决方案