問題是:我有一個swing應用程序。只有一種形式有2 btns(「開始」,「停止」)。 在這些btns上,我添加了帶有線程類的ActionListener。多線程Java Swing
我想在新線程中啓動一些工作,當我點擊btn「開始」並結束該工作時,我點擊btn「停止」。代碼有點類似於這個在控制檯中可以正常工作,但在swing doest中。任何幫助讚賞。提前致謝。 )
class Action implements ActionListener{
class MyThread extends Thread{
boolean live = true;
@Override
public void run() {
while(live)
System.out.println("doing...");
}
public void shutDown(){
live = false;
}
}
@Override
public void actionPerformed(ActionEvent e) {
JButton source = (JButton) e.getSource();
MyThread t = new MyThread();
switch (source.getText()) {
case "Start":
t.start();
break;
case "Stop":
t.shutDown();
break;
}
而這簡單的形式
public class App extends JFrame {
public static void main(String[] args) {
App app = new App();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
JButton btn1 = new JButton("Start");
JButton btn2 = new JButton("Stop");
app.getContentPane().add(btn1, BorderLayout.WEST);
app.getContentPane().add(btn2, BorderLayout.EAST);
Action action = new Action();
btn1.addActionListener(action);
btn2.addActionListener(action);
}
}
現場最好被宣佈爲不穩定。 – 2013-03-17 18:32:56