gpt4 book ai didi

java - 暂停按钮java

转载 作者:行者123 更新时间:2023-12-01 11:33:04 24 4
gpt4 key购买 nike

我想设置“暂停”按钮,以便在第一次单击时暂停我的线程。如果我再次点击该按钮,线程应该恢复。我设置了一个 boolean 值“marche”,它应该控制我的线程每次我都改变它。

import java.awt.event.*;
import javax.swing.*;

public class PauseButton {
static int count = 0;
static boolean marche = true;
static Thread mythread;
static JButton button = new JButton("Pause");

public static void main(String[] args) {
JFrame fen = new JFrame("EDT");
fen.getContentPane().add(button);
fen.setSize(200, 100);
fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fen.setLocationRelativeTo(null);
fen.setVisible(true);
updateBouton();
setButtonLis();
}

public static void updateBouton() {
mythread = new Thread() {
public void run() {
for (int i = 0; i < 100; i++) {
while (marche) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
button.setText("Pause " + ++count);
}
}
}
};

mythread.start();

}

static public void setButtonLis() {

button.addMouseListener(new MouseListener() {

@Override
public void mouseClicked(MouseEvent arg0) {

if (marche)
marche = false;
else
marche = true;
new Thread() {
public void run() {
System.out.print(marche + " ");
}
}.start();
}

@Override
public void mouseEntered(MouseEvent arg0) {
}

@Override
public void mouseExited(MouseEvent arg0) {
}

@Override
public void mousePressed(MouseEvent arg0) {
}

@Override
public void mouseReleased(MouseEvent arg0) {
// button.setText("Pause");
}
});

}
}

最佳答案

更改您的updateBouton代码如下...

public static void updateBouton() {
th = new Thread() {
public void run() {
// for (int i = 0; i < 100; i++) {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(marche) {
bouton.setText("Pause " + ++count);
}
}
// }
}
};
th.start();
}

当您单击按钮时,变量 marche为 false,因此线程中的 while 循环关闭并且线程完成了执行,因此创建一个无限 while 循环并检查 boolean 值以更新按钮上的文本..也不需要 for(int i=0;i<100;i++)循环..

关于java - 暂停按钮java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com