⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threaddemo.java

📁 金旭亮的java教案
💻 JAVA
字号:
import javax.swing.UIManager;import java.awt.*;import java.awt.event.*;import javax.swing.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class ThreadDemo {  boolean packFrame = false;  //Construct the application  public ThreadDemo() {    Frame1 frame = new Frame1();    //Validate frames that have preset sizes    //Pack frames that have useful preferred size info, e.g. from their layout    if (packFrame) {      frame.pack();    }    else {      frame.validate();    }    //Center the window    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();    Dimension frameSize = frame.getSize();    if (frameSize.height > screenSize.height) {      frameSize.height = screenSize.height;    }    if (frameSize.width > screenSize.width) {      frameSize.width = screenSize.width;    }    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);    frame.setVisible(true);  }  //Main method  public static void main(String[] args) {    try {      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());    }    catch(Exception e) {      e.printStackTrace();    }    new ThreadDemo();  }}class Frame1 extends JFrame {  JPanel contentPane;  BorderLayout borderLayout1 = new BorderLayout();  TextArea textArea1 = new TextArea();  //Construct the frame  public Frame1() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    //使用内部类,实现线程    class DemoThread implements Runnable    {      String name;      Thread t;      DemoThread(String Name_of_Thread)      {        name=Name_of_Thread;        t=new Thread(this,name);        textArea1.append("New Thread:"+t+"\n");        t.start();//自动启动      }      public void run()      {        try        {          for (int i=4;i>0;i--)          {            textArea1.append(name+":"+i+"\n");            Thread.sleep(1000);//等待一秒          }        }        catch(InterruptedException e)        {          textArea1.append(name+" interrupted.\n");        }        textArea1.append(name+" exited.\n");      }    }    DemoThread th1=new DemoThread("One");    DemoThread th2=new DemoThread("Two");    //(1) 创建第三个线程    //DemoThread th3=new DemoThread("Three");    textArea1.append("Thread One is alive:"+th1.t.isAlive()+"\n");    textArea1.append("Thread Two is alive:"+th2.t.isAlive()+"\n");   /* try    {      textArea1.append("Waiting for threads to finished.\n");     //(3)如果去掉下面两句,会发生什么?        // th1.t.join();        // th2.t.join();      //(2)  变换位置    */      //DemoThread th3=new DemoThread("Three");    /*}    catch(InterruptedException e)    {      textArea1.append("Main thread Interrupted\n");    }*/    textArea1.append("Thread One is alive:"+th1.t.isAlive()+"\n");    textArea1.append("Thread Two is alive:"+th2.t.isAlive()+"\n");    textArea1.append("MainTread Exited.");    contentPane.setLayout(borderLayout1);    this.setSize(new Dimension(400, 300));    this.setTitle("Frame Title");    contentPane.add(textArea1, BorderLayout.CENTER);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -