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

📄 duoxiancheng.java

📁 Java多线程演示程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DuoXiancheng extends JApplet implements ActionListener {

   //用applet定义变量和类R
   private JLabel infor1;
   private JLabel infor2;
   private JLabel infor3;
   private JLabel infor4;
   private JLabel infor5;
   private JLabel infor6;
   
   private JPanel inforPanel;
   private JPanel inforPanel2;
   
   private JLabel shuchus[];
   private JCheckBox annius[];   

   private Thread xianchengs[];
   private boolean zhanting[];

   private String colorNames[] = { "Black", "Blue", "Cyan", 
      "Dark Gray", "Gray", "Green", "Light Gray", 
      "Magenta", "Orange", "Pink", "Red", "White", "Yellow","Red","Blue" };
      
   private Color colors[] = { Color.black, Color.blue, 
      Color.cyan, Color.darkGray, Color.gray, Color.green,
      Color.lightGray, Color.magenta, Color.orange, Color.pink,
      Color.red, Color.white, Color.yellow,Color.red,Color.blue, };
   
   // 设置GUI 和数组
   public void init()
   {
      shuchus= new JLabel[15];
      annius = new JCheckBox[15];
      xianchengs = new Thread[15];
      zhanting = new boolean[15];
      
      JLabel infor1=new JLabel("");
      JLabel infor2=new JLabel("       多线程演示程序");
      JLabel infor3=new JLabel("           江南大学");
      JLabel infor4=new JLabel("          信息工程学院");
      JLabel infor5=new JLabel("  软件0202班     刘昌劲");
      JLabel infor6=new JLabel("       6号");
      
      JPanel inforPanel=new JPanel();
      inforPanel.setLayout(new GridLayout(1,3));
      inforPanel.add(infor1);
      inforPanel.add(infor2);
      inforPanel.add(infor3);
      inforPanel.add(infor4);
      inforPanel.add(infor5);
      inforPanel.add(infor6);
      
      JPanel inforPanel2=new JPanel();
      inforPanel2.setLayout(new GridLayout(5,6,7,7));
    
      Container container = getContentPane();
      container.add(inforPanel,BorderLayout.NORTH);
      container.add(inforPanel2,BorderLayout.CENTER);
      
      // 创建GUI元素,注册listeners 并关联到content pane
      
      for ( int c = 0; c < 15; c++ ) {
         annius[c] = new JCheckBox( "线程"+(c+1)+"停止/开始");
         annius[c] .addActionListener( this );
         annius[c].setBackground(Color.orange);
         inforPanel2.add(annius[c]);

         shuchus[c] = new JLabel();
         shuchus[c].setOpaque( true );
         inforPanel2.add( shuchus[c] );
      }
      
   }
  
   //创建和开始线程方法,该方法在init之后和用户背调用
   
   public void start()
   {
      // 创建线程,每次start()开始时就运行
      for (int c=0;c<xianchengs.length; c++) {

         // 创建线程,用Runnable对象R初始化
         xianchengs[c] = new Thread( new R(), 
            "第"+(c+1)+"个线程");

         //执行线程
         xianchengs[c].start();
        
      }
   }

   // 寻找线程在数组中的位置
   private int zhiyin( Thread liuxing)
   {
      for ( int a=0; a<xianchengs.length;a++)

         if (liuxing==xianchengs[a] )
            return a;

      return -1; 
   }

   //当用户选中按钮就调用该方法停止线程
   public synchronized void stop()
   {
      // 开始令每个线程都运有

⌨️ 快捷键说明

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