Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKrystyna Górkiewicz Został zmieniony 11 lat temu
1
Plan Prezentacji Wczytywanie grafiki Wyświetlanie obrazów
Podwójne buforowanie, Dźwięki w apletach Wątki i procesy Stany wątku Klasa Thread Synchronizacja i priorytety wątków Obsługa wyjątków
2
Wczytywanie grafiki Obrazy zapisane w postaci plików na dysku lub w Internecie można wczytać do aplikacji w Javie i wyświetlić na obiektach Graphics. Jeśli obraz znajduje się na dysku lokalnym, należy zastosować poniższą procedurę: String filename = "...": Image image = lmageI0.read(new File(filename)):
3
Wczytywanie grafiki W przypadku obrazu z adresu URL:
String urlname = "..." Image image = ImageI0.read(new URL(urlname)): Metoda read powoduje wyjątek l0Excepti on, jeśli obraz jest niedostępny.
4
Wyświetlanie obrazów Aby wyświetlić obraz, można skorzystać z metody:
boolean drawImage(Image img, int x, int y, ImageObserver observer) Rysuje obraz w naturalnym rozmiarze.
5
Wyświetlanie obrazów Lub:
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) Rysuje obraz o zmienionych wymiarach. System dopasowuje rozmiar obrazu do obszaru o podanej szerokości i wysokości
6
Przykład import java.awt.*; import java.applet.*;
public class ImageExample extends Applet { Image moj_obraz; moj_obraz = getImage(base,"przyklad.jpg"); public void paint(Graphics g) { g.drawImage(my_gif,20,20,this); g.drawImage(my_gif,20,140,30,40,this); } }
7
Podwójne buforowanie Wykonywanie wielu operacji graficznych może spowodować, że obraz będzie migotał. Aby tego uniknąć można zastosować technikę zwaną podwójnym buforowaniem. Polega ona na tym, aby zawartość okna najpierw narysować na obrazie(obiekcie typu Image) umieszczonym wpamięci, a następnie cały obraz przenieść na ekran.
8
Przykład import java.applet.*; import java.awt.event.*; import java.awt.*; public class DoubleBuffering extends Applet implements MouseMotionListener { Graphics bufferGraphics; Image offscreen; Dimension dim; int curX, curY; public void init() dim = getSize(); addMouseMotionListener(this); setBackground(Color.black); offscreen = createImage(dim.width,dim.height); bufferGraphics = offscreen.getGraphics(); }
9
Przykład cd. public void paint(Graphics g) { bufferGraphics.clearRect(0,0,dim.width,dim.width); bufferGraphics.setColor(Color.red); bufferGraphics.drawString("Double-buffered",10,10); bufferGraphics.fillRect(curX,curY,20,20); g.drawImage(offscreen,0,0,this); } public void update(Graphics g) paint(g); public void mouseMoved(MouseEvent evt) curX = evt.getX(); curY = evt.getY(); repaint(); public void mouseDragged(MouseEvent evt){}
10
Przykład cd.
11
Dźwięki import java.applet.*; import java.awt.event.*;
public class PrzykladowyDzwiek extends Applet implements MouseListener { AudioClip dzwiek; public void init() dzwiek = getAudioClip(getDocumentBase(),"pliczek.wav"); addMouseListener(this); setBackground(Color.pink); } public void paint(Graphics g) g.drawString("Kliknij by usłyszeć dzwięk",20,20); public void mouseClicked(MouseEvent evt) dzwiek.play(); } // Oczywiście trzeba dodać jeszcze niezbędne metody obsługi kliknięć
12
Dźwięki Klasa AudioClip dostarcza następujące metody:
public abstract void play() - zagranie dźwięku raz public abstract void loop() - granie w pętli public abstract void stop() - zatrzymanie grania dźwięku
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.