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

📄 swingthreadtest.java

📁 sun公司开发的,java2核心技术,卷II:高级性能,包括一系列的高级java应用技术,如数据库德连接,高级swing,多线程,软件本地化等等,本文件中则包含该书中的所用实例,配合该书使用,使对ja
💻 JAVA
字号:
/**
 * @version 1.20 1999-04-26
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class SwingThreadTest
{  public static void main(String[] args)
   {  JFrame frame = new SwingThreadFrame();
      frame.show();
   }
}

class SwingThreadFrame extends JFrame
{  public SwingThreadFrame()
   {  setTitle("SwingThread");
      setSize(400,300);
      addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );
      model = new DefaultListModel();

      JList list = new JList(model);
      JScrollPane scrollPane = new JScrollPane(list);

      JPanel p = new JPanel();
      p.add(scrollPane);
      getContentPane().add(p, "South");

      JButton b = new JButton("Good");
      b.addActionListener(new ActionListener()
         {  public void actionPerformed(ActionEvent event)
            {  new GoodWorkerThread(model).start();
            }
         });
      p = new JPanel();
      p.add(b);
      b = new JButton("Bad");
      b.addActionListener(new ActionListener()
         {  public void actionPerformed(ActionEvent event)
            {  new BadWorkerThread(model).start();
            }
         });
      p.add(b);

      getContentPane().add(p, "North");
   }

   private DefaultListModel model;
}

class BadWorkerThread extends Thread
{  public BadWorkerThread(DefaultListModel aModel)
   {  model = aModel;
      generator = new Random();
   }

   public void run()
   {  while (true)
      {  Integer i = new Integer(generator.nextInt(10));

         if (model.contains(i))
            model.removeElement(i);
         else
            model.addElement(i);

         yield();
      }
   }

   private DefaultListModel model;
   private Random generator;
}

class GoodWorkerThread extends Thread
{  public GoodWorkerThread(DefaultListModel aModel)
   {  model = aModel;
      generator = new Random();
   }

   public void run()
   {  while (true)
      {  final Integer i = new Integer(generator.nextInt(10));
         EventQueue.invokeLater(new Runnable()
            {  public void run()
               {  if (model.contains(i))
                     model.removeElement(i);
                  else
                     model.addElement(i);
               }
            });
         yield();
      }
   }

   private DefaultListModel model;
   private Random generator;
}

⌨️ 快捷键说明

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