OOP_L15.ppt
- Количество слайдов: 16
Організація аплетів в мові Java Аплет – невелика прикладна програма, яка знаходиться на Internet-сервері, транспортується по Internet, автоматично інсталюється і запускається як частина Web-документ.
Організація аплетів в мові Java Варіанти аплетів: побудовані на класі Applet (Abstract Window Toolkit) (AWT) побудовані на класі JApplet (Swing)
Методи класу Applet 14. void destroy () Accessible. Context get. Accessible. Context() Applet. Context get. Applet. Context() String get. Appletlnfo() Audio. Clip get. Audio. Clip (URL url) Audio. Clip get. Audio. Clip(URL url, String clip. Name) URL get. Code. Base () URL get. Document. Base() Image getlmage(URL url) Image getlmage (URL url, String image. Name) Locale get. Locale() String get. Parameter(String param. Name) String [] [] get. Parameterlnfo () void init () 15. boolean is. Active () 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Методи класу Applet 16. 17. 18. 19. 20. 21. 22. 23. 24. static final Audio. Clip new. Audio. Clip(URL url) void play (URL ur 1) void play(URL ur 1, String clip. Name) void resize (Dimension dim) void resize (int width, int height) final void set. Stub (Applet. Stub stub. Obj) void show. Status (String str) void start () void stop ()
Скелет аплета (1) // Скелет аплета import java. awt. *; import java. applet. *; /* */ public class Applet. Skel extends Applet { // Викликається першим public void init() { // ініціалізація } /* Викликається другим, після init(). Також викликається піля рестарту аплета. */ public void start() { // запускає чи відновлює виконання }
Скелет аплета (2) // Викликається при зупинці аплета. public void stop() { // призупинка виконання } /* Викликається при знищенні аплета. Це – останній виконуваний метод. */ public void destroy() { // виконує завершаючі дії } // Викликається, коли вікно аплета повинно бути відновленим. public void paint(Graphics g) { // перемалювання вмісту вікна } } Може перевизначатись метод update()
Приклади побудови аплетів (1) /* Встановлення кольору фону, переднього плану, відображення стрічки. */ import java. awt. *; import java. applet. *; /* */ // Ініціалізація стрічки, яка буде відображатись. public void start() { msg += " Inside start( ) --"; } public class Sample extends Applet{ String msg; // Встановлення кольору фону і переднього плану. public void init() { set. Background(Color. cyan); set. Foreground(Color. red); msg = "Inside init( ) --"; } } // Відображення повідомлення у вікні аплета. public void paint(Graphics g) { msg += " Inside paint( ). "; g. draw. String(msg, 10, 30); }
Приклади побудови аплетів (2) /* Аплет з банером */ import java. awt. *; import java. applet. *; /* */ public class Simple. Banner extends Applet implements Runnable { String msg = " A Simple Moving Banner. "; Thread t = null; int state; boolean stop. Flag; // Встановити колір і ініціалізувати потік. public void init() { set. Background(Color. cyan); set. Foreground(Color. red); } // Запустити потік. public void start() { t = new Thread(this); stop. Flag = false; t. start(); } // Точка входу для потоку, який прокручує банер. public void run() { char ch; // Відобразити банер. for( ; ; ) { try { repaint(); Thread. sleep(250); ch = msg. char. At(0); msg = msg. substring(1, msg. length()); msg += ch; if(stop. Flag) break; } catch(Interrupted. Exception e) {} } } // Пауза у виводі банера. public void stop() { stop. Flag = true; t = null; } // Відображення банера. public void paint(Graphics g) { g. draw. String(msg, 50, 30); } }
Приклади побудови аплетів (2) // Використання вікна стану. import java. awt. *; import java. applet. *; /* */ public class Status. Window extends Applet{ public void init() { set. Background(Color. cyan); } // Відобразити павідомлення у вікні аплета. public void paint(Graphics g) { g. draw. String("This is in the applet window. ", 10, 20); show. Status("This is shown in the status window. "); } }
HTML – дескриптор APPLET
Передача параметрів аплетам (1) // Ініціалізація стрічки для // Використання параметрів. відображення. import java. awt. *; public void start() { import java. applet. *; String param; /* font. Name = else */ font. Size = 0; public class Param. Demo extends Applet{ } catch(Number. Format. Exception e) { String font. Name; int font. Size; font. Size = -1; float leading; } boolean active;
Передача параметрів аплетам (2) param = get. Parameter("leading"); try { if(param != null) // не знайдений leading = Float. value. Of(param). float. Value(); else leading = 0; } catch(Number. Format. Exception e) { leading = -1; } param = get. Parameter("account. Enabled"); } if(param != null) active = Boolean. value. Of(param). boolean. Value(); } // Відобразити параметри. public void paint(Graphics g) { g. draw. String("Font name: " + font. Name, 0, 10); g. draw. String("Font size: " + font. Size, 0, 26); g. draw. String("Leading: " + leading, 0, 42); g. draw. String("Account Active: " + active, 0, 58); }
Методи get. Document. Base() та get. Code. Base() // Відображення баз документа і кода. import java. awt. *; import java. applet. *; import java. net. *; /* */ public class Bases extends Applet{ // Відображення бази документа і бази кода. public void paint(Graphics g) { String msg; URL url = get. Code. Base(); // отримати базу кода msg = "Code base: " + url. to. String(); g. draw. String(msg, 10, 20); url = get. Document. Base(); // отримати базу документа msg = "Document base: " + url. to. String(); g. draw. String(msg, 10, 40); } }
Інтерфейси класу Applet. Context Audio. Clip Applet. Stub
Методи інтерфейса Applet. Context 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Applet get. Applet(String applet. Name) Enuneration
Використання контекста аплета /* Використання контекста аплета, get. Code. Base(), і show. Document() для відображення HTML-файла. */ import java. awt. *; import java. applet. *; import java. net. *; /* */ public class ACDemo extends Applet{ public void start() { Applet. Context ac = get. Applet. Context(); URL url = get. Code. Base(); // одержати url даного аплета try { ac. show. Document(new URL(url+"Test. html")); } catch(Malformed. URLException e) { show. Status("URL not found"); } } }


