Ü B U N G S F R A G E N (SWING) ----------------------- Allgemein: 1. Beschreiben Sie die wesentlichen Merkmale, durch die sich eine GUI-Anwendung von einer Konsolen-Anwendung unterscheidet. 2. Beschreiben Sie genau die Bedeutung der Schichten des MVC-Modells, bezogen auf das Entwurfsmuster einer SWING-Applikation? 3. Welches sind die zwei alternativen Anweisungen, mit denen ein SWING-Fenster sichtbar gemacht werden kann? 4. Was versteht man unter GUI-Komponenten (genaue Beschreibung)? 5. Welche grundsätzlichen Komponenten-Arten kennen Sie? 6. Was sind die zwei prinzipiellen Aufgaben einer aktiven GUI-Komponente? 7. Mit welcher Anweisung muss eine Komponente in den Inhaltsbereich eingefügt werden, damit sie sichtbar wird? 8. Mit welchem Befehl wird der Inhalt eines Textfeldes gesetzt? 9. Mit welchem Befehl wird der Inhalt eines Textfeldes gelesen? 10. Wie muss dabei vorgegangen werden, wenn eine Zahl eingelesen werden soll (Programmcode Beispiel)? 11. Wie heisst der Befehl zum Anhängen eines Textes an den bereits existierenden Inhalt eines mehrzeiligen Textfeldes (TextArea)? 12. Was ist der prinzipielle Unterschied zwischen TextArea(AWT) und JTextArea (SWING)? 13. Wie lautet der Befehl zur absoluten Positionierung (x, y) einer Komponente? 13. Welches sind die fünf Arten der Dialogfenster vom Typ JOptionPane ? 14. Was ist der Unterschied zwischen einem modalen und einem nicht-modalen Dialogfenster? ------------------------------------------------------------------------------- Ereignisbehandlung: 1. Was bedeutet das Delegationsprinzip in der SWING-Ereignisverarbeitung? (genaue Beschreibung) 2. Mit welcher Anweisung wird ein Ereignisempfänger für ein ActionEvent-Objekt bei einer Komponente registriert? 3. Welche Informationen beinhaltet ein eventObject und mit welchen zwei Methoden können diese abgefragt werden? 4. Fügen Sie in das folgende Programm den fehlenden Code ein: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test { public static void main(String[] args){ SimpleFrame frame = new SimpleFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class SimpleFrame extends JFrame { public SimpleFrame() { SimplePanel panel = new SimplePanel(); Container cp = getContentPane(); cp.add(panel); setTitle("SwingFramePanel"); setSize(300, 200); setLocation(200,300); } } class SimplePanel extends JPanel ............................. { JButton b1, b2; public SimplePanel() { setLayout(null); b1 = new JButton("EXIT"); b1.setBounds(10,10, 100,20); add(b1); b1. ..................................................... } public void .................... (ActionEvent ae) { if(ae. .................... == b1) { System.exit(0); } } } 5. Welche weiteren Ereignis-Arten ausser ActionEvent kennen Sie? 6. Beschreiben Sie genau, auf welche (drei) Arten eine SWING-Ereignisbehandlung implementiert werden kann. 7. Wenn obiges Beispiel mit einer anonymen ereignisverarbeitenden Klasse implementiert würde, wie müsste dann die folgende Zeile lauten: b1. ................ ( ................................. ....................................................... ....................................................... ......................................................); 8. Wenn obiges Beispiel mit einer externen Ereignisverarbeitenden klasse implementiert werden sollte, was müsste dann am Quellcode geändert werden? a.) ....................................................... b.) ....................................................... c.) ....................................................... 9. Was ist zu beachten, wenn die Ereignisverarbeitung in einer externen Klasse erfolgt? 10. Welche spezielle Art von Assoziation ist dann zwischen der GUI-Klasse und der ereignisverarbeitenden Klasse herzustellen? Notieren Sie dies am folgenden Beispielprogramm .... class SimplePanel extends JPanel { JButton b1; Listener l; public SimplePanel( ) { l = ...............................................; setLayout(null); b1 = new JButton("EXIT"); b1.setBounds(10,10, 100,20); add(b1); b1. ...............................................; } //////////////////////////////////////////////////////////////////// class Listener ..................... { SimplePanel sp; Listener( .....................................) { sp = ....................; } ... } 4. 5. 6. 7. 8. 9.