Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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.

Podobne prezentacje


Prezentacja na temat: "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."— Zapis prezentacji:

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 gracznych 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. s/

11 Dźwięki import java.applet.*; import java.awt.event.*; import java.awt.*; 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


Pobierz ppt "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."

Podobne prezentacje


Reklamy Google