Spielen Sie Diashows und Animationen ab
Veranschaulichen Sie anhand von Beispielen, wie Folien und Animationen abgespielt werden.
[Beispiel] Die kleine Anwendung liest zunächst die Folien in ein Array und speichert sie. Anschließend klickt sie mit der Maus, um die Folien zu ändern und einzeln anzuzeigen.
import java.applet.*import java.awt.*;import java.awt.event.*;public class example7_7 erweitert Applet implementiert MouseListener{ final int number = 50; //Angenommen, es gibt 50 Folien int count = 0; ] card = new Image[number]; public void init(){ addMouseListener(this); for (int i = 0; i < number; i++){ card[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void paint(Graphics g){ if ((card[count]) != null) g.drawImage(card[count], 10 , 10, card[count].getWidth(this),card[count].getHeitht(this), this } public void mousePressed(MouseEvent e){ count = (count + 1) % number; //Schleife und Anzeige repaint(); } public void mouseRelease(MouseEvent e){} public void mouseExited(Mouse Event e){} public void mouseClicked(MouseEvent e){}}
[Beispiel] Das Applet erklärt, wie Animationen abgespielt werden. Es erfordert, dass die Bilder abgespielt werden und das Applet im selben Verzeichnis abgelegt wird. Das Programm erzeugt den Effekt der Anzeige von Animationen, indem es schnell eine Gruppe von Bildern anzeigt. Die kleine Anwendung nutzt Threads, um die Anzeige animierter Bilder nacheinander zu steuern.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_8 erweitert das Applet um Runnable{ final int number = 50; int count = 0; Thread mythread; new Image[number]; public void init(){ setSize(300, 200); for (int i = 0; i <= number; i++){ //Animierte Bilder laden pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); public void start(){ mythread = new Thread(this); //Create A thread mythread.start(); //Thread-Ausführung starten} public void stop(){ mythread = null } public void run(){ //Thread-Ausführungscode while (true){ repaint(); = (count + 1) % number; //Ändere die angezeigte Bildnummer try{ mhythread.sleep(200); Catch (InterruptedExeception e){} } } public void paint(Graphics g){ if ((pic[count] != null) g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), Das); }}
Ton abspielen
Es gibt viele Audioformate in der alten Basis der Java-Sprache: au, aiff, wav, midi, rfm usw. Um Audiodateien in einem Applet abzuspielen, können Sie die AudioClip-Klasse verwenden, die in der Klassenbibliothek java.applet.AudioClip definiert ist. Das Applet erstellt zunächst ein AudioClip-Objekt und initialisiert es mit der Methode getAudioClip(). Die Codeform lautet wie folgt:
AudioClip audioClip = getAudioClip(getCodeBase(),"myAudioClipFile.au");
Wenn Sie eine Audiodatei aus dem Internet beziehen möchten, können Sie mit der Methode getAudioClip(URL url, String name) ein abspielbares Audioobjekt basierend auf der URL-Adresse und dem Namen der Audiodatei erhalten.
Es gibt drei Methoden, um die Tonwiedergabe zu steuern: play() zum Abspielen des Tons, loop() zum Schleifen der Wiedergabe und stop() zum Stoppen der Wiedergabe.
[Beispiel] Eine kleine Anwendung, die Sounds abspielen kann.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_9 erweitert Applet implementiert ActionListener{ AudioClip-Clip; //Deklarieren Sie ein Audioobjekt Button buttonPlay, buttonLoop, buttonStop; public void init (){ clip = getAudioClip(getCodeBase(), "2.wav"); //Erstellen Sie ein Audioobjekt basierend auf der Sounddatei 2.wav an der Adresse des Programms, //Die Methode getCodeBase() der Applet-Klasse kann die URL-Adresse der HTML-Seite abrufen, auf der sich das Applet befindet. buttonPlay = new Button("Wiedergabe starten"); buttonStop = new Button("Wiedergabe beenden"); buttonStop.addActionListener(this); (this); add(buttonPlay); add(buttonLoop); } public void stop(){ clip.stop(); //Beim Verlassen dieser Seite die Wiedergabe stoppen} public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay){ clip.play(); } else if (e.getSource() == buttonLoob){ clip .loop(); } else if (e.getSource() == buttonStop){ clip.stop();
[Beispiel] Wenn die Sounddatei groß oder die Netzwerkgeschwindigkeit langsam ist, wirkt sich dies auf die Initialisierung des Miniprogramms aus. Dies kann mit Multithreading-Technologie gelöst werden. Die Erstellung des Audioobjekts wird in einem untergeordneten Thread abgeschlossen, d. h. die Sounddatei wird im Hintergrund geladen und im Vordergrund abgespielt.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Hanoi erweitert das Applet Runnable, ActionListener{ AudioClip clip; //Deklarieren Sie ein Audioobjekt textField text; Thread ButtonPlay , buttonLoop, buttonStop; public void init(){ thread = new Thread(this); //Erstelle einen neuen Thread-Thread .setPriority(Thread.MIN_PRIORITY); buttonPlay = new Button("Wiedergabe starten"); buttonStop = new Button("Wiedergabe beenden"); .addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this add(buttonPlay); add(buttonLoop); add(text); } public void start(){ clip.stop( } public void actionPerformed( if (e.getSource() == buttonPlay(){ clip.play(); } else if (e.getSource() == buttonLoop(){ clip.loop(); } else if (e.getSource() == buttonStop(){ clip.stop(); } } public void run(){ //Audioobjektclip im Thread erstellen thread = getAudioclip(getCodeBase(), "2.wav"); text .setText("Bitte warten"); if(clip ! = null){ buttonPlay.setBackground(Color.red); buttonLoop.setBackground(Color.green); text.setText("Sie können abspielen"); } //Nach Erhalt des Audioobjekts kann die Benachrichtigung abgespielt werden}}