//cd c:\JavaTry\MySwing\Slideshow\Package //set CLASSPATH=. //javac slideshow\Slideshow.java package slideshow; import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; public class Slideshow extends JApplet implements ActionListener, Runnable { SlidePanel slidepanel; JButton startButton; JButton stopButton; AudioClip onceClip; Thread t; ImageIcon[] images; int height; int i = 0; public String slideName; public String midiFile; public String[] str; public int n ; //NUM_IMAGES public void init(){ Container contentPane = getContentPane(); slidepanel = new SlidePanel(); Dimension d = getSize(); height = d.height; JPanel minipanel= new JPanel(); startButton = new JButton("Start"); stopButton = new JButton("Stop"); startButton.addActionListener(this); stopButton.addActionListener(this); contentPane.add(minipanel,BorderLayout.NORTH); contentPane.add(slidepanel,BorderLayout.CENTER); minipanel.add(startButton); minipanel.add(stopButton); minipanel.setBackground(Color.green); slidepanel.setBackground(Color.yellow); images = new ImageIcon[n]; for (int j = 0; j < n; j++) { String imageName = slideName + j + ".jpg"; try{images[j]=new ImageIcon(new URL(getDocumentBase(),imageName)); } catch (Exception e) {} } } public void actionPerformed(ActionEvent event) { Object source = event.getSource(); if (source == startButton) { onceClip = getAudioClip(getCodeBase(),midiFile); onceClip.play(); //AudioPlay // スレッドを起動する t = new Thread(this); t.start(); } if (source == stopButton) { onceClip.stop(); //AudioStop stop(); } } public void run() { try { Thread mythread = Thread.currentThread(); while(t == mythread) { slidepanel.init(); Thread.sleep(3000); i++; if (i == n) i=0; } } catch (Exception e) { } } public void stop() { t=null; } class SlidePanel extends JPanel { public void init() { repaint(); } public void paintComponent(Graphics g) { super.paintComponent(g); images[i].paintIcon(this,g,50,30); // g.drawImage(icon.getImage(),50,40,null); g.setFont(new Font("Serif", Font.BOLD, 30)); g.setColor(Color.blue); g.drawString(str[i],220,height-50); } } } /* 1 C:\HPBasic\Toppage-sample3\MySwing2>appletviewer Kosmos.html で、 Kosmos.html を と変更しで、appletviewer Kosmos.html では画面は出る。スライドショーにはならない。 2 しかし、mid,jpgをSlideディレクトリからMySwing2に移すことでできた。 3 package Kosmos;は必要。ないと、 java.lang.NoClassDefFoundError: Kosmos/Kosmos (wrong name: Kosmos) というエラー。 */