Fragen zur graphischen Programmierung (Swing)

Fragen zur graphischen Programmierung (Swing) javafrage Sun, 03/19/2017 - 17:50

1 Swing Layoutmanager

1 Swing Layoutmanager

Bestimmen Sie den oder die Layoutmanager für Swingbenutzeroberflächen abhängig von der Position und der Größe der gezeigten Komponenten. Gehen Sie davon aus, dass das Fenster mit dem JPanel in der Wunschgröße gezeigt wird.

Beispiel:

a.)LayoutManager : FlowLayoutManager

Hinweis: Sie benötigen eventuell Hilfspanels mit eigenem Layoutmanager

Beispiele für Komponentenlayouts

Die Antwort finden Sie auf der nächsten Seite (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 7 Minuten
javafrage Fri, 02/03/2012 - 11:06

Anonymous (not verified)

Sun, 04/28/2013 - 11:02

Kann es sein, dass bei der Frage die genaue Fragestellung fehlt?

Danke. Wurde korrigiert. Muss ein klassischer Copy-and-paste Fehler gewesen sein...

2 Relatives Layoutmanagement versus absolutes Layoutmanagement

2 Relatives Layoutmanagement versus absolutes Layoutmanagement

Warum ist in den meisten Fällen die Verwendung von Layoutmanagern bei der Entwicklung von graphischen Benutzeroberflächen sinnvoller als ein Pixel-genaues Layout aller Komponenten?

Die Antwort finden Sie auf der nächsten Seite (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 3 Minuten

Antwort zu Frage 1: Swing LayoutManager

a.) LayoutManager: Flow oder Box

b.) LayoutManager: Box; Alle Elemente haben gleiche Höhe, C hat eigene Breite die Boxbreite bestimmt.

c.) LayoutManager: Borderlayout ohne Centerelement

d.) Layoutmanager: Gridlayoutmanager

e.) LayoutManager äussereres JPanel: Borderlayout mit A und B in eigenem Layoutmanager im Norden

  • Hilfspanel um A+B: Layoutmanager des Hilfspanel: Flow, Grid, Border oder Box
javafrage Mon, 02/06/2012 - 16:25

3 Welcher Layoutmanager wird hier benutzt?

3 Welcher Layoutmanager wird hier benutzt?

Das Applet weiter unten kann 6 JFrames starten. Jedes JFrame benutzt ein JPanel. Welcher Layoutmanager wird im jeweiligen Frame verwendet?

Manche Layoutmanager benötigen Direktiven bei der Erzeugung des Layoutmanager. Welche Direktiven wurden hier verwendet?

Manche Komponenten benötigen Direktiven für den Layoutmanager beim Hinzufügen in das JPanel?

Laden Sie die Datei Layout.jar auf Ihren Rechner. Starten Sie sie mit dem Befehl:

java -jar Layout.jar

Ein Doppelklick auf der heruntergeladenen Datei reicht vielleicht auch.

Die 6 JFrames verwenden jeweils nur einen Layoutmanager.

Hinweis: Links von diesem Text sollte automatisch ein Applet mit 6 Knöpfen gestartet werden. Beim Drücken eines Knopf wird jeweils ein Fenster mit einem JFrame erzeugt. Es taucht am linken oberen Bildschirmrand auf.

Tipp: Vergrößern und verkleinern Sie die Fenster. Man kann bei manchen Fenstern erst erkennen welcher Layoutmanager verwendet wird wenn die einzelnen Komponenten nicht ihre Wunschgröße erhalten

Antwort zu Frage 2: Relatives Layoutmanagement versus absolutes Layoutmanagement

Graphische Oberflächen müssen auf unterschiedlich großen Bildschirmen angezeigt werden können.

Komponenten haben eventuell auf Grund des Betriebssystems unterschiedliche Größen.

GUIs werden vom Benutzer eventuell in der Form geändert.

Bei all diesen Gegebenheiten ist ein automatisches Anlegen eines neuen Layout von Vorteil.

javafrage Sat, 02/25/2012 - 11:59

Anonymous (not verified)

Mon, 06/20/2016 - 10:27

Kann es sein, dass hier das Applet fehlt?

Anonymous (not verified)

Tue, 06/26/2018 - 17:45

Hier fehlt wohl das Applet.
Da Applets von den meisten Browsern nicht mehr unterstützt werden, sollte die Frage wohl rausgenommen oder umformuliert werden.

LG:)

Stefan Schneider

Tue, 06/26/2018 - 18:00

In reply to by Anonymous (not verified)

Die Zeiten der Applets sind vorbei.
Ich habe den Text angepasst. Man muss sich die jar Datei individuell herunterladen.

4 Swing: Layoutmanager für drei Komponenten

4 Swing: Layoutmanager für drei Komponenten

Welche Layoutmanager können auf Wunsch drei Komponenten horizontal oder auch vertikal anzeigen?

Gehen Sie davon aus, dass der LayoutManager die Komponenten mindestens in ihrer Wunschgröße darstellen kann.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 3 Minuten

Antwort zu Frage 3: Layoutmanager

  • Layoutmanager 1: Flowlayout
  • Layoutmanager 2: Boxlayout, vertikal (Parameter BoxLayout.Y_AXIS)
  • Layoutmanager 3: Gridlayout(2,3), 2 Zeilen, 3 Spalten
  • Layoutmanager 4: Borderlayout
    • JButton "A": Borderlayout.NORTH
    • JButton "B": Borderlayout.WEST
    • JButton "CCCCCCCC": BorderLayout.CENTER
    • JTextArea: Borderlayout.EAST
    • JButton "D": Borderlayout.SOUTH
  • Layoutmanager 5: Boxlayout, horizontal (Parameter BoxLayout.X_AXIS)
  • Layoutmanager 6:
    • JButton "A": Borderlayout.NORTH
    • JButton "CCCCCCCC": BorderLayout.CENTER
    • JTextArea: Borderlayout.EAST
    • JButton "D": Borderlayout.SOUTH

Der Quellcode des Applets

package Kurs2.Swing;
 
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
public class LayoutTest extends JApplet implements ActionListener {
    JButton[] b;
    static final int BUTTONS = 6;
 
    public LayoutTest() {
        b = new JButton[BUTTONS+1];
        JPanel jp = new JPanel();
        jp.setLayout( new BoxLayout(jp,BoxLayout.Y_AXIS));
        for (int i=1; i<= BUTTONS; i++) {
            b[i] = new JButton("Layoutmanager " + i );
            jp.add(b[i]);
            b[i].addActionListener(this);
        }
        Container myPane = getContentPane();
        myPane.add(jp);
    }
    public static void main(String[] args) {
        layout1();
        layout2();
        layout3();
        layout4();
        layout5();
        layout6();
    }
 
    public static void layout1() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 1");
        jp = new JPanel();
        jp.setLayout(new FlowLayout());
 
        jp.add(new JButton("A"),BorderLayout.NORTH);
        jp.add(new JButton("B"),BorderLayout.WEST);
        jp.add(new JButton("CCCCCCCC"),BorderLayout.CENTER);
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta,BorderLayout.SOUTH);
        jp.add(new JButton("D"));
 
        f.add(jp);
        f.pack();
        f.setVisible(true);
    }
 
    public static void layout2() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 2");
        jp = new JPanel();
        jp.setLayout( new BoxLayout(jp,BoxLayout.Y_AXIS));

        jp.add(new JButton("A"));
        jp.add(new JButton("B"));
        jp.add(new JButton("CCCCCCCC"));
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta);
        jp.add(new JButton("D"));

      f.add(jp);
        f.pack();
        f.setVisible(true);
    }

    public static void layout3() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 3");
        jp = new JPanel();
        jp.setLayout( new GridLayout(2,3));

        jp.add(new JButton("A"));
        jp.add(new JButton("B"));
        jp.add(new JButton("CCCCCCCC"));
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta);
        jp.add(new JButton("D"),BorderLayout.CENTER);

        f.add(jp);
        f.pack();
        f.setVisible(true);
    }
    public static void layout4() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 4");
 
        jp = new JPanel();
        jp.setLayout( new BorderLayout());

        jp.add(new JButton("A"),BorderLayout.NORTH);
        jp.add(new JButton("B"),BorderLayout.WEST);
        jp.add(new JButton("CCCCCCCC"),BorderLayout.CENTER);
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta,BorderLayout.EAST);
        jp.add(new JButton("D"),BorderLayout.SOUTH);

        f.add(jp);
        f.pack();
        f.setVisible(true);
    }

    public static void layout5() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 5");
        jp = new JPanel();
        jp.setLayout( new BoxLayout(jp,BoxLayout.X_AXIS));
 
        jp.add(new JButton("A"));
        jp.add(new JButton("B"));
        jp.add(new JButton("CCCCCCCC"));
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta);
        jp.add(new JButton("D"));
 
        f.add(jp);
        f.pack();
        f.setVisible(true);
    }
public static void layout6() {
        JFrame f ;
        JPanel jp;
        f= new JFrame("Layout 6");

        jp = new JPanel();
        jp.setLayout( new BorderLayout());

        jp.add(new JButton("A"),BorderLayout.NORTH);
        jp.add(new JButton("CCCCCCCC"),BorderLayout.CENTER);
        JTextArea jta =new JTextArea(2,10);
        jta.append("JTextArea \nrow 2\nrow 3");
        jp.add(jta,BorderLayout.EAST);
        jp.add(new JButton("D"),BorderLayout.SOUTH);

        f.add(jp);
        f.pack();
        f.setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source == b[1]) layout1();
        if (source == b[2]) layout2();
        if (source == b[3]) layout3();
        if (source == b[4]) layout4();
        if (source == b[5]) layout5();
        if (source == b[6]) layout6();
    }
}

 

javafrage Fri, 01/04/2013 - 12:30

5 Flowlayout-Manager versus Boxlayout-Manager

5 Flowlayout-Manager versus Boxlayout-Manager

Der Flowlayout-Manager und der Boxlayout-Manager sind sich ähnlich. Der Flowlayout-Manager ist nicht immer eine gute Wahl.
Nennen Sie 3 Fälle in denen man den Boxlayout-Manager verwenden sollte.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 3 Minuten

Antwort zu Frage 4: Swing, Layoutmanager für drei Komponenten

  • Boxlayout-Manager
  • Gridlayout-Manager
  • Borderlayout-Manager

 

javafrage Fri, 01/04/2013 - 12:37

Anonymous (not verified)

Thu, 06/06/2019 - 20:42

In Frage 4 auf der vorherigen Seite heißt es: "Gehen Sie davon aus, dass der LayoutManager die Komponenten in ihrer Wunschgröße darstellen kann."
Im Skript steht, dass der Gridlayout-Manager eine einheitliche Größe für alle Zellen hat. Wieso ist er als Antwort hier trotzdem richtig?

6 Swing, vertikale Anordnung von Komponenten

6 Swing, vertikale Anordnung von Komponenten

Sie sollen 5 unterschiedliche Komponenten vertikal anordnen. Alle Komponenten sollen die gleiche Fläche einnehmen. Welchen Layoutmanager wählen Sie?

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 1 Minute

Antwort zu Frage 5: Swing, Flowlayout-Manager versus Boxlayout-Manager

  1. Komponenten behalten minimal Wunschgröße und nutzen weitere Fläche wenn möglich
  2. Es gibt nie einen Umbruch in eine zweite Zeile
  3. Man kann ein vertikales Layout erzwingen

 Tipp: Mit Lösungsapplet zu Frage 2.25 spielen.

javafrage Fri, 01/04/2013 - 12:45

7 Swing, Implementieren einer Adapterklasse

7 Swing, Implementieren einer Adapterklasse

In der folgenden Klasse wird für das JLabel text1 eine innere Klasse MyMouseListener implementiert die auf 2 Ereignisse mit  Konsolenausgaben reagiert:

  • Maus kommt über Komponente
  • Maus verlässt die Komponente

Hierzu wird die Schnittstelle MouseListener implementiert.
Aufgabe:

  • Implementieren Sie eine gleichwertige innere Klasse MyMouseAdapter für das JLabel text2.
  • Spezialisieren Sie hierzu die abstrakte Klasse Swingklasse MouseAdapter die MouseListener implemeniert
  • Die neue Klasse soll die gleichen Ereignisse gleich behandeln(Kopieren Sie den Methodenrumpf)
package Kurs2.K2012;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;

public class ListenerToAdapter {

   public class MyMouseListener implements MouseListener {
      public void mouseClicked(MouseEvent e) {}
      public void mouseExited(MouseEvent e)
         { System.out.println("raus");}
      public void mouseEntered(MouseEvent e)
         { System.out.println("rein");}
      public void mousePressed(MouseEvent e) {}
      public void mouseReleased(MouseEvent e){}
      }

   public class MyMouseAdapter // Ab hier implementieren...
 
 
 
 
     // Ende der Implementierung
   } //Ende Klasse MyMouseAdapter

   public ListenerToAdapter() {
JLabel text1 = new JLabel("Label 2");
text1.addMouseListener(new MyMouseListener());
JLabel text2 = new JLabel("Label 2");
text2.addMouseListener(new MyMouseAdapter());
}
}

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 6 Minuten

Antwort zu Frage 6: Swing, vertikale Anordnung von Komponenten

  • Gridlayout-Manager

 

javafrage Fri, 01/04/2013 - 15:16

8 Adapterklassen versus Schnittstellen

8 Adapterklassen versus Schnittstellen
  1. Welche Vorteile haben die Swing-Adapterklassen im Vergleich zu den Schnittstellen die Sie implementieren?
  2. Wann haben die Adapterklassen im Vergleich zu den Schnittstellen keine Vorteile für den Entwickler?

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2+2 Minuten

Antwort zu Frage 7: Swing, Implementieren einer Adapterklasse

In der folgenden Klasse wird für das JLabel text1 eine innere Klasse MyMouseListener implementiert die auf 2 Ereignisse mit  Konsolenausgaben reagiert:

  • Maus kommt über Komponente
  • Maus verlässt die Komponente

Hierzu wird die Schnittstelle MouseListener implementiert.
Aufgabe:

  • Implementieren Sie eine gleichwertige innere Klasse MyMouseAdapter für das JLabel text2.
  • Spezialisieren Sie hierzu die abstrakte Klasse Swingklasse MouseAdapter die MouseListener implemeniert
  • Die neue Klasse soll die gleichen Ereignisse gleich behandeln(Kopieren Sie den Methodenrumpf)
package Kurs2.K2012;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;

public class ListenerToAdapter {

   public class MyMouseListener implements MouseListener {
      public void mouseClicked(MouseEvent e) {}
      public void mouseExited(MouseEvent e)
         { System.out.println("raus");}
      public void mouseEntered(MouseEvent e)
         { System.out.println("rein");}
      public void mousePressed(MouseEvent e) {}
      public void mouseReleased(MouseEvent e){}
      }

   public class MyMouseAdapter extends MouseAdapter // Ab hier implementieren...
      public void mouseExited(MouseEvent e) 
{ System.out.println("raus");}
public void mouseEntered(MouseEvent e)
{ System.out.println("rein");}
// Ende der Implementierung } //Ende Klasse MyMouseAdapter public ListenerToAdapter() {
JLabel text1 = new JLabel("Label 2");
text1.addMouseListener(new MyMouseListener());
JLabel text2 = new JLabel("Label 2");
text2.addMouseListener(new MyMouseAdapter());
}
}

 

javafrage Sat, 01/05/2013 - 13:44

Anonymous (not verified)

Sun, 04/28/2013 - 11:06

Muss die Klasse MyMouseAdapter nicht von MouseAdapter erben, um die genutzten Methoden "mouseExited" und "mouseEntered" überschreiben zu können? Also: public class MyMouseAdapter extends MouseAdapter { ... } .

9 Innere und anonyme Klassen

9 Innere und anonyme Klassen

Welchen Vorteil haben innere und anonyme Klassen in der Swing GUI Programmierung?

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Antwort zu Frage 8: Swing, Implementieren einer Adapterklasse

  1. Welche Vorteile haben die Swing-Adapterklassen im Vergleich zu den Schnittstellen die Sie implementieren?
    • Man muss nur die gewünschten Methoden durch überschreiben implementieren.
      Nicht benötigte Methoden können als leere Methoden geerbt werden. Bei einer Schnittstelle muss man alle Methoden implementieren. Auch die nicht benötigten.
  2. Wann haben die Adapterklassen im Vergleich zu den Schnittstellen keine Vorteile für den Entwickler?
    • Wenn man alle Methoden der Klasse sowieso implementieren muss. Wenn man von einer anderen Klasse erben möchte
       

 

javafrage Sat, 01/05/2013 - 13:58

10 Implementieren einer Listenerklasse

10 Implementieren einer Listenerklasse

Implementieren Sie eine Listenerklasse zum Behandeln von Mausklicks.
Benutzen Klassen aus dem Java API um diese Aufgabe zu lösen.

Siehe Diagramm:

 Listener-Hierarchie

Implementieren Sie die Klasse MeinMausListener. Die Klasse soll auf die Ereignisse MousePressed und MouseReleased reagieren.
Welche Klasse bzw. Schnittstelle wählen Sie um den Implementierungsaufwand minimal zu halten?
Wählen Sie den besten Methodenkopf (ankreuzen):.

  1. public class MeinMausListener extends MouseMotionListener
  2. public class MeinMausListener implements MouseMotionListener 
  3. public class MeinMausListener extends MouseListener 
  4. public class MeinMausListener implements MouseListener 
  5. public class MeinMausListener extends MouseAdapter 
  6. public class MeinMausListener implements MouseAdapter 
  7. public class MeinMausListener extends EventListener 
  8. public class MeinMausListener implements EventListener 

Welche andere Option ist die nächstbeste, aber suboptimal?

Warum ist diese Option suboptimal?

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2+2+2 Minuten

 

Antwort zu Frage 9: Innere und anonyme Klassen

Man kann sie direkt in der Klasse implementieren die sie exklusiv benötigen.
Dadurch benötigt man weniger Klassen.
Man belegt den Namensraum des Pakets nicht unnötig mit Klassennamen.
Man kann auf die Variablen und Methoden der umgebenden Klasse/Objekt zugreifen.

 

javafrage Fri, 01/25/2013 - 09:50

Anonymous (not verified)

Wed, 02/18/2015 - 18:27

Fehlt nach der "divide: geschafft" nicht "divide: after"? Bei der 2.54 steht es noch.

Sie haben haben sich das sehr genaue angeschaut. Gute Sache!

Durch das Werfen (Kommando throw) der IllegalArgumentException wird die Methode divide() abgebrochen da diese Ausnahme nicht in der Methode gefangen wird. "Divide after" wird nicht mehr erreicht.
Das Hinterhältige diese Aufgabe besteht darin, dass die Sonderregel "finally Blöcke werden immer ausgeführt" zum tragen kommt.
"divide: geschafft" wird also noch ausgeführt obwohl das Laufzeitsystem auf dem schnellsten Weg die Methode divide() verlassen möchte.
Ihre Frage hat eine gute Detaildiskussion angeregt. Danke!

11 Benutzung innerer Klassen

11 Benutzung innerer Klassen

Warum ist die Benutzung einer inneren Klasse nützlich?
Nennen Sie mindestens zwei Gründe.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2 Minuten

 

Antwort zu Frage 10: Implementieren einer Listenerklasse

 Listener-Hierarchie

Möglichkeiten

  1. public class MeinMausListener extends MouseMotionListener
  2. public class MeinMausListener implements MouseMotionListener 
  3. public class MeinMausListener extends MouseListener 
  4. public class MeinMausListener implements MouseListener 
  5. public class MeinMausListener extends MouseAdapter 
  6. public class MeinMausListener implements MouseAdapter 
  7. public class MeinMausListener extends EventListener 
  8. public class MeinMausListener implements EventListener 

Lösung 5 hat den niedrigsten Implementierungsaufwand

Lösung 4 ist korrekt aber suboptimal. Man muss alle Methoden implementieren.

javafrage Mon, 03/17/2014 - 08:40

12 Verwendung anonymer innerer Klassen

12 Verwendung anonymer innerer Klassen

In welchem Fall bietet sich die Verwendung einer anonymen, inneren Klasse an?
Geben Sie eine kurze Erklärung

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Antwort zu Frage 11: Benutzung innerer Klassen

  1. Der Klassennamensraum wird nicht unnötig benutzt
  2. Man kann auf die lokalen Attribute des Objekts der äusseren Klasse zugreifen

 

javafrage Mon, 03/17/2014 - 08:47

13 Swing: Komponenten und Container

13 Swing: Komponenten und Container
  • Was sind Komponenten in Swing?
    • Geben Sie eine kurze Erklärung
  • Was sind Container in Swing?
    • Geben Sie eine kurze Erklärung und erläutern Sie die Beziehung zwischen Containern und Komponenten.
  • Nennen Sie zwei Klassen die Container sind!

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2+2+2 Minuten

 Antwort zu Frage 12: Verwendung anonymer innerer Klassen

Man kann sehr effizient Klassen implementieren, die nur eine Methode besitzen und nur an genau einer Stelle benötigt werden um eine Schnittstelle oder eine abstrakte Klasse zu implementieren.

javafrage Sun, 03/01/2015 - 10:45

14 Layoutmanager, Komponenten, Container

14 Layoutmanager, Komponenten, Container

In welcher Beziehung stehen Layoutmanager zu Komponenten und Containern?

Nennen Sie drei Layoutmanager mit den denen Sie die horizontale Anordnung dreier Komponenten erzwingen können.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2+3 Minuten

Antwort zu Frage 13: Swing; Komponenten und Container

  • Was sind Komponenten in Swing?
    • Komponenten repräsentieren Teile einer graphischen Benutzerschnittstelle mit denen der Benutzer interagieren kann.
  • Was sind „Container in Swing?
    • Container sind Komponenten die wieder andere Komponenten enthalten können.
  • Nennen Sie zwei Klassen die Container sind
    • JPanel
    • JFrame

 

 

javafrage Sun, 03/01/2015 - 10:55

15 Vorteile innerer und anonymer innerer Klassen bei der Swing Ereignisbehandlung

15 Vorteile innerer und anonymer innerer Klassen bei der Swing Ereignisbehandlung

Nennen Sie drei Vorteile die eine innere Klasse bei der Swing-Ereignisbehandlung im Gegensatz zu einer normalen Klasse für den Entwickler hat.

Erläutern Sie die Vorteile mit jeweils einem Satz.

Wann ist es vorteilhaft eine anonyme innere Klasse in Gegensatz zu einer inneren Klasse mit Namen zu verwenden? Geben Sie eine kurze Erklärung

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 3+2 Minuten

 

Antwort zu Frage 14: Layoutmanager, Komponenten, Container

In welcher Beziehung stehen Layoutmanager zu Komponenten und Containern?

  • Layoutmanager erlauben die Anordnung von Komponenten in Containern zu konfigurieren.

Nennen Sie drei Layoutmanager mit den denen Sie die horizontale Anordnung dreier Komponenten erzwingen können.

  • BoxLayoutmanager
  • GridLayoutmanager
  • BorderlayoutManager

 

javafrage Sat, 03/21/2015 - 12:57

Anonymous (not verified)

Thu, 05/16/2019 - 08:23

Hallo,

in der Frage 15, 3 Satz sollte wohl anstelle von "Gegen" "Geben" stehen :)

16 Beurteilung von grafischen "Heavyweight" GUI Implementierungen

16 Beurteilung von grafischen "Heavyweight" GUI Implementierungen

Nennen Sie jeweils zwei Vorteile und zwei Nachteile einer grafischen „Heavyweight“ Implementierung wie AWT im Vergleich zu Swing.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Antwort zu Frage 15: Vorteile innerer und anonymer innerer Klassen bei der Swing Ereignisbehandlung

  1. Die Klassen liegen automatisch im gleichen Paket
  2. Es ist ein Zugriff auf die privaten Attribute der äusseren Klasse möglich
  3. Man belegt keine unnötigen Namen im Namensraum des Pakets der äusseren Klasse

Man nutzt eine anonyme innere Klasse wenn man genau eine Stelle im Code hat an der sie implementiert werden muss.

 

javafrage Sat, 01/24/2015 - 11:13

Anonymous (not verified)

Thu, 05/16/2019 - 08:25

Hallo,

In der Antwort zur Frage 15, sollte wohl aus dem englischen "when" ein "wenn" werden #denglisch :)

17 Vor- und Nachteile von grafischen Lightweight-Implementierungen

17 Vor- und Nachteile von grafischen Lightweight-Implementierungen

Nennen Sie jeweils zwei Vorteile und zwei Nachteile einer grafischen „Lightweight“ Implementierung wie Swing im Vergleich zu AWT.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Antwort zu Frage 16: Beurteilung von grafischen "Heavyweight" GUI Implementierungen

Vorteile

  1. Sie nutzen optimal die Betriebssystemresourcen
  2. Sie behalten das Look & Feel Ihrer Plattform
  3. Das Betriebssystem kennt alle Resourcen und kann sie optimal koordinieren. Bsp. Ein Menü welches andere Fenster verdeckt kann vollständig angezeigt werden

Nachteile

  1. Die Implementierung is plattformabgängig
  2. Man kann keine Elemente verwenden die die Platform nicht kennt. Bsp. Windows kennt das Ereignis  „Mouse over Button“ nicht.

 

javafrage Sun, 01/25/2015 - 10:23

18 Reagieren auf Ereignisse einer Swing Benutzeroberfläche

18 Reagieren auf Ereignisse einer Swing Benutzeroberfläche
  • Nennen den englischen Begriff bzw. den Namen der Javaschnittstellen mit denen man auf Ereignisse in einer Swing-Benutzeroberfläche reagiert.
  • Wie arbeiten diese Objekte mit den grafischen Objekten zusammen um Ereignisse auszuwerten? Geben Sie eine Erklärung.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 1 + 3 Minuten

Antwort zu Frage 17: Vor- und Nachteile von grafischen Lightweight-Implementierungen

Vorteile

  1. plattformunabhängig
  2. man kann das gewünschte Layout besser kontrollieren

Nachteile

  1. Plattformoptimierungen werden nicht unbedingt unterstützt. Bsp. 3D Beschleunigung
  2. ungewohntes „Look & Feel“ auf der Gastplattform

 

javafrage Sun, 01/25/2015 - 10:34

19 Besonderheiten anonymer, innerer Klassen und deren Verwendung

19 Besonderheiten anonymer, innerer Klassen und deren Verwendung

Was ist das besondere an anonymen, inneren Klassen? Wann ist die Benutzung einer anonymen inneren Klasse die beste Lösung. Nennen Sie mindestens zwei Gründe.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 1+4 Minuten

Antwort zu Frage 18: Reagieren auf Ereignisse einer Swing Benutzeroberfläche

Das Listenerobjekt wurde gegen das Ereignis des graphischen Objekts registriert. Das graphische Objekt ruft beim entsprechenden Ereignis das Listenerobjekt auf. Das Listerobjekt enthält die Implementierung die auf das Ereignis reagiert.

javafrage Sat, 02/13/2016 - 16:31

20 Swing Toplevel Container

20 Swing Toplevel Container
  • Nennen Sie mindesten 2 Toplevel Container die man in Swing benutzt um grafische Benutzeroberflächen zu entwickeln. 
  • Welchen dieser Container würden Sie wählen wenn Sie eine typische Textverarbeitungsanwendung implementieren sollen? Ihre Anwendung soll mehrere Dokumente in mehreren Fenstern verwalten können
  • Welche weiteren nützlichen Eigenschaften hat dieser Container für Ihre Textverarbeitungsanwendung? Nennen Sie Eine!

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2+1+1
Schwierigkeitsgrad mittel
Zeit 2+1+1 Minuten

Antwort zu Frage 19: Besonderheiten anonymer, innerer Klassen und deren Verwendung

Sie haben keinen expliziten Namen. Man verwendet sie wenn es genau eine Stelle im Code gibt an der man Objekte dieser Klasse erzeugen muss.

  1. Es gibt nur eine Stelle an der diese Klasse benötigt wird
  2. Man belastet den Namensraum der Klassen weniger da man keinen Namen vergeben muss
javafrage Sun, 03/12/2017 - 18:32

Anonymous (not verified)

Thu, 05/16/2019 - 17:58

Frage 20, 2. Stichpunkt, 2 Satz:

1. sollte entweder das Fragezeichen weg, oder der Satz soll zu einer Frage umbenannt werden.
2. anstelle von "könne" "können"

21 Definition Layoutmanager mit Beispiel

21 Definition Layoutmanager mit Beispiel

Was sind Layout-Manager in Swing? (Definition)

Sie sollen in Swing ein Schachbrett implementieren und Visualisieren. Welchen Layout-Manager wählen Sie?

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2+1 Minuten

Antwort zu Frage 20: Swing Toplevel Container

Nennen Sie mindesten 2 Toplevel Container die man in Swing benutzt um grafische Benutzeroberflächen zu entwickeln:

  • JFrame
  • JApplet
  • JDialog
  • JWindow

Welchen dieser Container würden Sie wählen wenn Sie eine typische Textverarbeitungsanwendung implementieren sollen. Ihre Anwendung soll mehrere Dokumente in mehreren Fenstern verwalten könne?

  • JFrame

Welche weiteren nützlichen Eigenschaften hat dieser Container für Ihre Textverarbeitungsanwendung? Nennen Sie eine:

  • Man kann Menüleisten konfigurieren.

Ein Layout-Manager ist ein Objekt, welches Methoden bereitstellt, um die grafische Repräsentation verschiedener Komponenten innerhalb eines Container-Objektes anzuordnen

javafrage Sun, 03/12/2017 - 18:47

22 Anonyme, innere Klasse implementieren

22 Anonyme, innere Klasse implementieren

Implementieren Sie eine innere, anonyme Klasse in der main() Methode der Klasse Rahmen.

  • Die Klasse wird aus der Klasse Test spezialisiert
  • Die Methode result() wird überschrieben. Sie soll den Wert 17 zurückgeben.
  • Weisen Sie das neue Objekt auf die vorgebene Referenz t zu.
public class Test { 
   public int result() {return 3; } 
} // Ende Klasse Test 

public class Rahmen { 
   public static void main (String[] args)
  { // hier implementieren: 
      Test t = new                               //Ab hier implementieren





  } // Ende main Methode
} // Ende Klasse Rahmen 

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 6 Minuten

Antwort zu Frage 21: Definition Layoutmanager mit Beispiel

Ein Layout-Manager ist ein Objekt, welches Methoden bereitstellt, um die grafische Repräsentation verschiedener Komponenten innerhalb eines Container-Objektes anzuordnen 

GridLayout. Mit diesem Layout kann man ein zweidimensionales Feld von Komponenten organisieren.

Die Antwort zu Frage 22 finden Sie viel weiter unten...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Antwort zu Frage 22: Anonyme, innere Klasse implementieren

public class Test { 
   public int result() {return 3; } 
} // Ende Klasse Test 

public class Rahmen { 
   public static void main (String[] args)
  { // hier implementieren: 
      Test t = new Test() {            public int result () {return 17;}            } // ende innere Klasse
  } // Ende main Methode
} // Ende Klasse Rahmen 
holodoctor Sat, 03/25/2017 - 14:35