使用多线程技术让你的Swing及时响应各类事件

寻Q757856333业

寻Q757856333业

2016-02-19 18:56

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的使用多线程技术让你的Swing及时响应各类事件懂设计的网友们快点来了解吧!

1、使用线程例子

package untitled1;
  
  import Javax.swing.*;
  
  import java.awt.event.*;
  
  import java.awt.*;
  
  import com.borland.jbcl.layout.*;
  
  /**
  
  * Title:
  
  * Description:
  
  * Copyright: Copyright (c) 2002
  
  * Company:
  
  * @author
  
  * @version 1.0
  
  */
  
  public class TestThread extends JFrame {
  
  JPanel jPanel1 = new JPanel();
  
  XYLayout xYLayout1 = new XYLayout();
  
  JButton startButton = new JButton();
  
  JButton stopButton = new JButton();
  
  MyThread thread = null;
  
  public TestThread() {
  
  try {
  
  jbInit();
  
  }
  
  catch(Exception e) {
  
  e.printStackTrace();
  
  }}
  
  private void jbInit() throws Exception {
  
  jPanel1.setLayout(xYLayout1);
  
  startButton.setText("start");
  
  startButton.addActionListener(new java.awt.event.ActionListener() {
  
  public void actionPerformed(ActionEvent e) {
  
  startButton_actionPerformed(e);
  
  }
  
  });
  
  stopButton.setText("stop");
  
  stopButton.addActionListener(new java.awt.event.ActionListener() {
  
  public void actionPerformed(ActionEvent e) {
  
  stopButton_actionPerformed(e);
  
  }
  
  });
  
  this.getContentPane().add(jPanel1, BorderLayout.CENTER);
  
  jPanel1.add(startButton, new XYConstraints(36, 105, 82, 30));
  
  jPanel1.add(stopButton, new XYConstraints(160, 108, 100, 31));
  
  }
  
  void startButton_actionPerformed(ActionEvent e) {
  
  if(thread != null) thread.stop();
  
  thread = new MyThread();
  
  thread.start();
  
  }
  
  void stopButton_actionPerformed(ActionEvent e) {
  
  if(thread != null) thread.stop();
  
  thread = null;
  
  }
  
  public static void main(String[] args)
  
  {TestThread test = new TestThread();
  
  test.setSize(300,400);
  
  test.show();
  
  }
  
  private class MyThread extends Thread
  
  {public MyThread(){
  
  }
  
  public void run(){
  
  while(true){try{
  
  sleep(100);
  
  }catch(InterruptedException e){}
  
  System.out.println("this is a test!");
  
  }}}
  
  }
  
  2、不使用线程的例子

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

package untitled1;
  
  import javax.swing.*;
  
  import java.awt.event.*;
  
  import java.awt.*;
  
  import com.borland.jbcl.layout.*;
  
  public class NoThread extends JFrame
  
  {
  
  JPanel jPanel1 = new JPanel();
  
  XYLayout xYLayout1 = new XYLayout();
  
  JButton startButton = new JButton();
  
  JButton stopButton = new JButton();
  
  private boolean flagTrue = true;
  
  public static void main(String[] args)
  
  {NoThread test = new NoThread();
  
  test.setSize(300,400);
  
  test.show();
  
  }
  
  public NoThread() {
  
  try {
  
  jbInit();
  
  }
  
  catch(Exception e) {
  
  e.printStackTrace();
  
  }
  
  }
  
  private void jbInit() throws Exception {
  
  jPanel1.setLayout(xYLayout1);
  
  startButton.setText("start");
  
  startButton.addActionListener(new java.awt.event.ActionListener() {
  
  public void actionPerformed(ActionEvent e) {
  
  startButton_actionPerformed(e);
  
  }
  
  });
  
  stopButton.setText("stop");
  
  stopButton.addActionListener(new java.awt.event.ActionListener() {
  
  public void actionPerformed(ActionEvent e) {
  
  stopButton_actionPerformed(e);
  
  }
  
  });
  
  this.getContentPane().add(jPanel1, BorderLayout.CENTER);
  
  jPanel1.add(startButton, new XYConstraints(27, 149, -1, -1));
  
  jPanel1.add(stopButton, new XYConstraints(182, 151, -1, -1));
  
  }
  
  void startButton_actionPerformed(ActionEvent e) {
  
  while(true){
  
  try{
  
  Thread.currentThread().sleep(100);
  
  }catch(InterruptedException er){}
  
  if(flagTrue){
  
  System.out.println("this is a test!");
  
  }}
  
  }
  
  void stopButton_actionPerformed(ActionEvent e) {
  
  if(flagTrue) flagTrue = false;
  
  else flagTrue = true;
  
  }}
  
  总结

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)


展开更多 50%)
分享

猜你喜欢

使用多线程技术让你的Swing及时响应各类事件

编程语言 网络编程
使用多线程技术让你的Swing及时响应各类事件

Swing中的多线程

编程语言 网络编程
Swing中的多线程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC中利用多线程技术实现线程之间的通信

编程语言 网络编程
VC中利用多线程技术实现线程之间的通信

线程与Swing

编程语言 网络编程
线程与Swing

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

如何使用Java编写多线程程序

编程语言 网络编程
如何使用Java编写多线程程序

浅析Java多线程编程中的高级技术

编程语言 网络编程
浅析Java多线程编程中的高级技术

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java从何而来 为什么如此火暴

Java从何而来 为什么如此火暴

落单的恋人最怕过节

落单的恋人最怕过节
下拉加载更多内容 ↓