我想知道如果按下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);
}
答案 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事件将处理您的键按下和释放事件。