Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Grundlagen der Programmierung 2 SS 2005 - Lösung 2

Lösung zu Aufgabe 5

Zu dieser Aufgabe gibt es keine Musterlösung.

Lösung zu Aufgabe 6

Zu dieser Aufgabe gibt es keine Musterlösung.

Lösung zu Aufgabe 7

a)
In dieser Aufgabe ging es zunächst darum, einen Objektbaum zu entwerfen.

So könnte der Baum aussehen:

Objektbaum.gif

b)
1. Komponentenmethoden:
  • public Dimension getPreferredSize();
  • public Dimension getMinimumSize();
2. Methoden der Schnittstelle LayoutManager:
  • Dimension preferredLayoutSize(Container)
  • Dimension minimumLayoutSize(Container)
3. Berücksichtigung der Größe:
  • i. BorderLayout ignoriert die Größe der Komponenten teilweise: Höhe der nördlichen und südlichen Komponente wird berücksichtigt, Breite ignoriert. Breite der östlichen und westlichen Komponenten wird berücksichtigt, Höhe ignoriert. Höhe und Breite der zentralen Komponente werden ignoriert.
  • ii. FlowLayout: Berücksichtigt die bevorzugte Breite und Höhe der Komponenten.
  • iii. GridLayout: Ignoriert die bevorzugte Breite und Höhe der Komponenten.

Lösung zu Aufgabe 8

Für eine Beispiellösung siehe Memory.java.

Die Hauptklasse ist Unterklasse von JFrame und der ContentPane wird ein 4x4 GridLayout zugewiesen, das die 16 JButton-Komponenten platziert.

Es wird eine Unterklasse von JButton verwendet, die Beschriftungen speichern, aufdecken und verdecken kann.

Wir implementieren eine ActionListener-Klasse als separate Klasse der Hauptklasse, die in zwei Objektvariablen, die maximal zwei bisher aufgedeckten Felder speichert.

Es wird nur ein ActionListener für alle Buttons verwendet, damit wir aus der Reaktionsmethode (actionPerformed) auf die gemeinsamen Zustandsvariable für die aufgedeckten Felder zugreifen können. Die Methode kann aufgerufen worden sein, wenn kein, ein, oder zwei Felder aufgedeckt sind:

Das Verdecken eines ungleichen Paares könnten wir in einer verbesserten Version des Programms auch nach einer Verzögerungszeit auslösen, statt bis zur nächsten Auswahl zu warten.

Die Reaktionsmethode bekommt die Referenz auf das angeklickte Feld bzw. den Button über ihren Event-Parameter.

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 03.06.2005