【发布时间】:2013-04-23 20:52:39
【问题描述】:
我需要在我的 Java GUI 中运行一个后台线程,该线程仅在我单击一个按钮时运行,并在我再次单击该按钮时暂停。我不确定如何设置它,但是我在构造函数中放置了一个线程,并且当我将特定布尔值设置为 TRUE 时,其中的 while 循环设置为通过。一键切换设置此布尔值 TRUE 或 FALSE。
我在这个 GUI 中的所有其他东西都可以正常工作。当我尝试调试线程时,它实际上在我单步执行线程时工作,但当我尝试完全运行 GUI 时却没有。 GUI 相当大,所以我将放置一部分构造函数和按钮的动作侦听器。其余的代码是不必要的,因为它工作得很好。我需要知道我在这里做错了什么:
public BasketballGUI() {
// certain labels and buttons
Thread runningSim = new Thread() {
public void run() {
while(simRun) {
// do stuff here
}
}
};
runningSim.start();
}
// other GUI stuff
// actionListener that should run the thread.
class SimButtonListener implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
if(!simRun) {
simRun = true;
sim.setText("Pause Simulator");
}
else if(simRun) {
simRun = false;
sim.setText("Run Simulator");
}
// other stuff in this actionListener
}
}
【问题讨论】:
-
@LittleChild 不,它们不能
Thread#suspend和Thread#resume已弃用并被视为不稳定... -
@原始发帖者,请展示一些代码,请告诉我们您正在尝试做什么。
-
No code example,没有答案
-
如需尽快获得更好的帮助,请发帖 SSCCE。我不会像@MadProgrammer 那样说“没有SSCCE,没有答案”,但这确实暗示了许多人会忽略没有SSCCE 的问题。
-
@AndrewThompson 那只是因为我是一个脾气暴躁、懒惰的老草;)
标签: java swing user-interface