我有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");}
}
它仍然卡住了
答案 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}