Java/Awt_Swing
AWT Applet에 이미지 오디오 파일 띄우기
krvision
2011. 12. 2. 16:24
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()------------수시로 실행 }