java多线程介绍及动画效果、文字滚动

 

多线程

进程是资源分配的最小单位
线程是cpu调度的最小单位

1、继承Thread
   创建:  A extends Thread
    在A中实现run()
   启动:利用继承自Thread 的strart() 方法
          A a = new A();
   a.start();

2、实现Runnable接口
   创建:  A implements Runnable
    在A中实现run()
   启动: 以A的对象为Thread的构造函数的参数创建Thread对象
    并且利用它的start()方法调度启动线程
          A a = new A();
   Thread b = new Thread(a);
   b.start();


3、利用Timer TimerTask

    创建:创建TimerTask的子类,并实现run()方法得到时钟器任务类
          MyTimerTask extends TimerTask{
  public void run(){
  }
   }
    启动:创建时钟器Timer对象
          利用时钟器对象的schedule()方法启动线程任务

   Timer timer = new Timer();
   timer.schedule(new MyTimerTask(), ....,...);

 

//动画效果

import java.awt.Container;

import javax.swing.*;


public class Animation extends JFrame implements Runnable{

 JLabel jlb = null;
 int frame = 0;
 ImageIcon[] img = new ImageIcon[7];
 
 public Animation(){
  super("豹子");
  
  for(int i=0; i<img.length; i++){
   img[i] = new ImageIcon("src/res/card" + i + ".png");
  }
  
  jlb = new JLabel(img[0]);
  
  Container c = this.getContentPane();
  
  add(jlb);
  new Thread(this).start();
  this.setSize(500,600);
  this.setVisible(true);

 }
 
 public void run(){
  while(true){
   jlb.setIcon(img[++frame%7]);
   try{
    Thread.sleep(100);
   }catch(InterruptedException ie){
    ie.printStackTrace();
   }
  }
 }

 public static void main(String[] args) {
  new Animation();

 }
 

}

//文字滚动

import java.awt.*;
import java.util.TimerTask;

import javax.swing.*;


public class hbsi extends JFrame{
 
 JLabel lb = new JLabel("河北软件职业技术学院",JLabel.CENTER);
   
 public hbsi(){
  super("滚动");
  this.add(lb);
  this.setSize(350,300);
  this.setLocation(450,300);
  this.setVisible(true);
  new TextScroll_1(lb).start();
 }
 public static void main(String[] args) {
      new hbsi();
 }

 class TextScroll_1 extends Thread{
  JLabel lb ;
  public TextScroll_1(JLabel _lb){
   lb = _lb;
  }
  public void run(){
   String str = lb.getText();
   while(true){
    try{
     str = str.substring(1)+str.substring(0,1);
     lb.setText(str);
     Thread.sleep(200);
    }catch (InterruptedException ie) {
     ie.printStackTrace();
    }
   }
  }
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值