如何在两次点击后禁用JButton?

时间:2016-05-10 17:05:36

标签: java user-interface jbutton

我想知道如果按下JButton两次然后按钮会自动禁用,换句话说它会.setEnabled(false);

这是我到目前为止的代码。我想要它,以便如果Respin被按下两次,那么btnRespin将被设置为false

      //This is the code for spinning the wheels once hold is pressed
  if (event.getSource() == btnHold1 && "THIS IS WHERE I NEED THE CODE FOR IF THE BUTTON IS PUSHED TWICE")
  {
      counter = 0;
      timer1.stop();
      btnHold1.setEnabled(false);
  }

4 个答案:

答案 0 :(得分:2)

您可以使用点击计数器

就像int i = 0;并且每次点击都会增加

并检查它何时高于1

答案 1 :(得分:0)

是的,你想要实现的目标是可能的。 如果您想计算该事件中的点击次数,您可以使用:

event.getClickCount() == 2

如果要在第二次单击时禁用该按钮,即:单击一次以启用,然后再次禁用。这就是我想要你做的事情。

event.getSource() == btnHold1 && (counter%2 == 0)

我建议使用该按钮的点击事件并增加并检查您的计数器。例如:

public counter = 0;
private void functionForButtonClick (Events, handlers etc..){
    counter++;
    if(counter%2 == 0){
        btnHold1.setEnabled(false);
    }
}

答案 2 :(得分:0)

如果你使用actionListener并为每个事件增加一个计数器,如果用户点击按钮就会出现问题,然后5分钟后再次点击它,它会看到第二个事件为双击并禁用按钮。假设您只想在用户真正双击(在系统双击间隔内)时禁用它,您可以使用自己的计时器来执行此操作,或者只使用MouseListener,并使用此代码:

 @Override
 public void mousePressed( MouseEvent ev ) {
    if ( ev.getClickCount() == 2 ) {
       ((JButton)ev.getSource).setEnabled( false );
    }
 }

请注意,用户仍然可以使用空格键按下按钮,但快速按两次空格不会被视为双击。

答案 3 :(得分:0)

试试这个:

  private class ClickHandler extends MouseAdapter {

    @Override
     public void mouseClicked( MouseEvent ev ) {
        if ( ev.getClickCount() >= 2 ) {
           ((JButton)ev.getSource).setEnabled( false );
        }
     }
}

mouseClicked事件将处理您的键按下和释放事件。