如何在执行操作时检查另一个按钮

时间:2016-05-02 06:42:14

标签: java

我有2个按钮,当点击第一个按钮时,它运行一个无限循环,我希望它在我点击第二个按钮时停止。 由于我是使用java的新手,所以这样做的正确方法是什么。

我知道这是错的,但我只想说清楚我要做的事情

private void button1_buttonActionPerformed(java.awt.event.ActionEvent evt) {
    while( !button2.isClicked() ) {} }

编辑

这是我尝试过的事情

boolean sthap = false;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   while(!sthap){
   System.out.println("run");
   }
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    sthap=true;
}       

静止。它停留在循环

edited2

boolean sthap = false;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   runrun();
   }


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    sthap=true;
}       

public void runrun(){
while(!sthap){
   System.out.println("run");}
}

它仍然卡住了

3 个答案:

答案 0 :(得分:2)

定义一个标志变量,如;

boolean isBUttonClicked = false;

并在while loop

使用if语句

while(true){
   if(isButtonClicked){
     isButtonClicked = false;
     break;
   }else{
      //do your job
   }
}

在第二个按钮action performed method

使用isButtonClicked并使其像

一样真实
isButtonClicked = true;

答案 1 :(得分:1)

试试这个

boolean sthap = false;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            while (!sthap) {
                System.out.println("run");
            }
        }
    }).start();
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    sthap = true;
}

答案 2 :(得分:0)

在按钮方法之外声明一个类似于此boolean flag=false的静态变量。 然后在按钮1中,

private void button1_buttonActionPerformed(java.awt.event.ActionEvent evt) { while( !flag ) {} }

并在button2内,

private void button1_buttonActionPerformed(java.awt.event.ActionEvent evt) { flag = true}