多线程

多线程实现方法
  1. 继承 Thread 类
  2. 实现 Runnable 接口再 new Thread(YourRunnableOjbect)

 

实例:

package com.wjj.test;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;

public class Clock extends JFrame {

 private JPanel contentPane;
 private JButton btnNew;

 /**
  * Launch the application.主方法
  */
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {

     //实例化
     Clock frame = new Clock();

     //开始运行
     frame.init();
     frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }

 /**
  * Create the frame.
  */
 public Clock() {
  setTitle("Clock");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setBounds(100, 100, 200, 150);
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  contentPane.setLayout(new BorderLayout(0, 0));
  setContentPane(contentPane);

  btnNew = new JButton("New button");
  contentPane.add(btnNew, BorderLayout.CENTER);
 }

 public void init() {
  InternalClock clock = new InternalClock(btnNew);
  clock.start();
  new Thread(new Move(this)).start();
 }

 

//继承抽象类

 class InternalClock extends Thread {
  JButton button = null;

  public InternalClock(JButton button) {
   this.button = button;
  }

  public void run() {
   SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
   while (true) {
    button.setText(format.format(new Date()));
    try {
     Thread.sleep(1000);
    } catch (InterruptedException e) {
     e.printStackTrace();
    }

   }
  }

 }

 

//实现Runnable接口方式

 class Move implements Runnable {
  JFrame frame = null;

  public Move(JFrame frame) {
   this.frame = frame;
  }

  @Override
  public void run() {
   Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
   frame.setLocation((int) dimension.getHeight(), (int) (dimension
     .getHeight()));
   for (int i = (int) dimension.getHeight(); i > (int) (dimension
     .getHeight()
     - frame.getHeight() - 40); i--) {
    frame.setLocation(
      (int) dimension.getWidth() - frame.getWidth(), i);
    try {
     Thread.sleep(20);
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   }
   try {
    Thread.sleep(2000);//休眠2秒后继续运行
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   frame.dispose();
  }
 }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值