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

📄 move.java

📁 java应用举例4
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Move extends Applet implements Runnable,ActionListener{
    //定义两个线程来控制小球运动
    Thread redBall,blueBall; 
    //声明一个按钮用来启动线程
    Button start;
    //声明一个时间变量
    int second=0;
    //声明两个图形类
    Graphics redPen,bluePen;

    public void init(){
        //设定程序背景颜色 
        setBackground(Color.pink);
        //创建按钮,并设置大小及位置
        start=new Button("Start");
        setLayout(null);
        add(start);
        start.setBounds(0,0,200,30);
        //添加监视器
        start.addActionListener(this);
        
        //获得画图方法
        redPen =getGraphics();
        bluePen =getGraphics();
        //设置画笔的颜色
        redPen.setColor(Color.red);
        bluePen.setColor(Color.blue);    
    }

    public void start(){

    }

    public void run()
    { 
        while(true)
        { 
            //每执行一次,时间加一秒
            second=second+1;
            //当前线程为redBall时
            if(Thread.currentThread()==redBall) 
            {
                if((int)(1.0/2*second*9.8)>400) {
                    //如果小球到达画面底部,则秒数回零
                    second=0;
                }
                //清空画面,以便重画
                redPen.clearRect(0,0,100,300);
                //在指定的位置画小球
                redPen.fillOval(50,(int)(1.0/2*second*9.8),15,15);
                try{
                    //线程秀棉1500毫秒
                    redBall.sleep(1500);
                }
                catch(InterruptedException e){
                    System.out.println(e);
                }
            }
            else if(Thread.currentThread()==blueBall)
            {
                if((int)(1.0/2*second*9.8)>400) {
                    //如果小球到达画面底部,则秒数回零
                    second=0;
                }
                //清空画面,以便重画
                bluePen.clearRect(120,0,1000,500); 
                //在指定的位置画小球
                bluePen.fillOval(120+3*second,(int)(1.0/2*second*9.8),15,15);
                try{
                    //线程秀棉1500毫秒
                    blueBall.sleep(1500);
                }
                catch(InterruptedException e){
                    System.out.println(e);
                }
            } 
        }   
    } 
    
    public void actionPerformed(ActionEvent e){
       if(e.getSource()==start){
           if (redBall ==null){
              //创建线程,并启动线程
              redBall =new Thread(this);
              redBall.start();
           }

           if (blueBall ==null){
              //创建线程,并启动线程
              blueBall =new Thread(this);
              blueBall.start();
           }
        }
    }
}

⌨️ 快捷键说明

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