showimage.java

来自「主要是对于JAVA的编程的基本语言 希望能够帮得上你。」· Java 代码 · 共 106 行

JAVA
106
字号
package exercise;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//awt: Abstract Window Toolkit

public class ShowImage extends Applet implements 
                           Runnable,ActionListener{
	
	//声明部分
	Image image;
	Thread thread;
	Button btnStart,btnStop;
	AudioClip music;
	int iPosY;
	boolean m_bRunning,m_bOpen;	
	
	public void init(){
		this.resize(400, 400);
		
		//创建对象
		image=this.getImage(this.getCodeBase(),"exercise/bird.jpg");	
		btnStart=new Button("开始");
		btnStop=new Button("停止");
		music=this.getAudioClip(this.getCodeBase(),"exercise/情义两心知.mid");
		
		//将组件添加到Applet
		this.add(btnStart);
		this.add(btnStop);
		
		//注册监听器
		btnStart.addActionListener(this);
		btnStop.addActionListener(this);
	}
	
	public void Start(){
		m_bRunning=true;
		thread =new Thread(this);	
		thread.start();		
		music.play();
	}
	
	public void Stop(){
		m_bRunning=false;		
		music.stop();		
	}
	
	@Override
	public void update(Graphics g){
		paint(g);		
	}
	
	@Override
	public void paint(Graphics g){
		//采用双缓冲技术避免图像抖动
		Image offImage=this.createImage(this.getWidth(),this.getHeight());
		Graphics offGraphics=offImage.getGraphics();		
		offGraphics.drawImage(image,0,0,this.getWidth(),this.getHeight(),this);
		offGraphics.setColor(new Color((int)(Math.random()*256),
				    (int)(Math.random()*256),(int)(Math.random()*256)));
		if(m_bOpen){
			offGraphics.fillArc(180, iPosY, 100, 100, 30, 330);
		}else{
			offGraphics.fillArc(180, iPosY, 100, 100, 0, 360);
		}
		
		g.drawImage(offImage,0,0,this);
	}	
	
	public void run() {
			while(m_bRunning){
				if(iPosY<this.getHeight()){
					iPosY=iPosY+10;
				}else{
					iPosY=-100;
				}
				
				m_bOpen=!m_bOpen;
					
				repaint(); //重绘屏幕
				try {
					Thread.sleep(300);
				} catch (InterruptedException e) {					
					e.printStackTrace();
				}
			}
	}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==btnStart){
			Start();			
		}else if(e.getSource()==btnStop){
			Stop();
		}
		
	}
	
}

⌨️ 快捷键说明

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