Ü 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.