我創建了一個啓動線程的GUI,它可以做一些非常簡單的事情。但是,子線程永遠不會啓動。子線程不啓動
子線程,如果啓動,將提供一些輸出;儘管我沒有得到任何輸出。我錯過了什麼?
下面的代碼:
的GUI類:
import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class gui { public static void main(String [] args) { //final standalone s = new standalone(); final try2 t= new try2(); JFrame win = new JFrame(); win.setLayout(new FlowLayout()); JButton start = new JButton("Start"); JButton stop = new JButton("Stop"); start.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub t.t.start(); System.out.println("M on!"); try{ Thread.currentThread().sleep(10000); }catch(Exception e1) { e1.printStackTrace(); } System.out.println("M off!"); if(t.t.isInterrupted()) System.out.println("Stopped"); } }); win.add(start); win.add(stop); win.setVisible(true); } }
這裏是子線程
public class try2 implements Runnable { public Thread t; int i; try2() { t=new Thread(); } public void run() { System.out.println(++i); } }
脫離主題的建議:閱讀Java命名約定。類應該被命名爲「LikeThisName」,而不是「likethisname」。 – bezmax 2012-03-21 07:48:37
您沒有覆蓋try2.t中的運行方法 – styfle 2012-03-21 07:49:59
您可以在線程上加入()以等待它結束,而不是睡眠10秒。 – 2012-03-21 09:31:11