AWT Applet에 이미지 오디오 파일 띄우기

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class  MyImage2 extends Applet
{
	Button start, stop;
	Choice ch;
	Image im;
	AudioClip audio;
	int flag=0;

	public void init() {
		setLayout(new BorderLayout());
		Panel p = new Panel();
		add(p, "North");
		p.setBackground(new Color(200, 130, 80));
		p.add(start=new Button("Start"));
		p.add(stop=new Button("Stop"));

		//Choice 생성 및 부착
		ch = new Choice();
		// 초이스에 문자열로 아이템 등록...pic01
	for (int i=1;i<=7 ;i++ )
	{
		ch.add("pic"+i);
	}
	//패널에 초이스 부착
	p.add(ch);
	
	//이미지 로딩------
	im=getImage(getDocumentBase(), getParameter("pic1"));
	//오디오 파일 로딩
	audio=getAudioClip(getDocumentBase(), getParameter("audio1"));
	MyHandler my = new MyHandler();
	start.addActionListener(my);
	stop.addActionListener(my);
	ch.addItemListener(my);

	}//init()--------애플릿 실행시 딱 한번만 실행
	class MyHandler implements ItemListener, ActionListener
	{
		public void itemStateChanged(ItemEvent e) {
			String str = ch.getSelectedItem();
			showStatus(str);
			String filename= getParameter(str);
			im=getImage(getDocumentBase(), filename);
			repaint();  //중요///////
		}
	
		public void actionPerformed(ActionEvent e){
			Object o=e.getSource();
			if(o==start) {
				flag=1;
				Thread tr=new MyThread();
				tr.start();
				audio.play(); //오디오 파일 연주
			}else if(o==stop) {
				flag=0;
				audio.stop();//오디오 파일 중지
			}
		}
	}//////////////////////////
	class MyThread extends Thread
	{
		public void run() {
		//반복문 돌면서 이미지7컷을 로딩해주고 repaint()를 호출한다.....
		//sleep()를 걸어서 타임delay를 주자....
		int index=0;
		while(flag==1) {
			if(index>7)
				index=0;
				String filename=getParameter("pic"+ (++index));
				im=getImage(getDocumentBase(),filename);
				repaint();
				try{
				Thread.sleep(1000);
				}catch (InterruptedException e) {
					showStatus(e.getMessage());
				}
		}//while-----
		}
	}/////////////////////////
	public void paint(Graphics g) {
		g.drawImage(im, 50,50,200,200, this);
	}//paint()------------수시로 실행
}


'Java > Awt_Swing' 카테고리의 다른 글

Swing Demo  (0) 2011.12.05
AWT 이용 학사관리 프로그램  (0) 2011.12.05
AWT 멀티 프레임 연동  (1) 2011.12.02
AWT 그림판 완성  (0) 2011.12.02
AWT 그림판 Mouse Event ( Canvas 영역에 그리기 )  (0) 2011.12.01