运行代码一次的按钮

时间:2016-11-24 22:30:27

标签: java performance button

我正在编写一个程序,它使用带有许多按钮的控制器来执行某些任务。基本上,当按下按钮时,我想要运行特定的代码,并且只运行一次。这就是为什么我有buttonWasPressed来确保代码只在按下按钮时运行一次,而不是每个循环周期。

while(active)
{
    if(button1)
        if(!buttonWasPressed)
        {
            code1();
            buttonWasPressed = true;
        }
    else if(button2)
        if(!buttonWasPressed)
        {
            code2();
            buttonWasPressed = true;
        }
    else if(button3)
        if(!buttonWasPressed)
        {
            code3();
            buttonWasPressed = true;
        }
    .
    .
    .
    else
        buttonWasPressed = false;
}

我主要想知道是否有更好的方法来写这个,因为检查和设置buttonWasPressed会有很多不必要的重复。我想过使用一个switch语句,但那些需要有案例的常量,这个代码没有。我也不能使用数组作为按钮,因此for循环可能不起作用。理想情况下,我希望代码看起来像这样:

while(active)
{
    if(button1)
        code1()
    else if(button2)
        code2();
    else if(button3)
        code3();
    .
    .
    .
}

除了代码每按一次只运行一次,按下。有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

只需等待所有按钮释放,然后再进入下一个循环即可使用。代码现在看起来像这样:

while(active)
{
    if(button1)
        code1()
    else if(button2)
        code2();
    else if(button3)
        code3();
    .
    .
    .

    while(!buttonsAreReleased());
}

这可能在其他应用程序中不起作用,因为空的while循环保持不变,但它对我有用。我必须制作检查按钮是否已释放的方法:

boolean buttonsAreReleased()
{
    return !(button1 || button2 || ...);
}