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:
- b)
-
1. Komponentenmethoden:
- public Dimension getPreferredSize();
- public Dimension getMinimumSize();
- Dimension preferredLayoutSize(Container)
- Dimension minimumLayoutSize(Container)
- 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:
- kein Feld: Das angeklickte Feld wird als neues erstes Feld aufgedeckt.
- ein Feld: Das angeklickte Feld wird als zweite Feld aufgedeckt; prüfen, ob die Beschriftungen gleich sind: wenn ja, beide kennzeichnen und für eine neue Wahl vorbereiten; wenn nein, auf nächste Aktion warten.
- zwei Felder: Die vorher aufgedeckten (unterschiedlich markierten) Felder verdecken; das angeklickte Feld als neues erstes Feld aufdecken.
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