Adapterklasse

Status
Nicht offen für weitere Antworten.
Hilfe, wie fange ich diese Aufgabe am besten an? Gibts vielleicht ein Beispiel dazu, habe schon gegoogelt, jedoch nichts brauchbares gefunden.... :cry:


Übungsthema: GUI-Programmierung und Adapterklassen
Teil a) „Rechner“
Ziel ist die Implementierung eines kleinen Rechners mit zwei Eingabefeldern, einer Enter-Taste
und einem Ergebnisfeld. Eine aus „JFrame“ abgeleitete Klasse soll die Start-Anwendung
beinhalten. Für das Rechnermodul ist eine zusätzliche Klasse zu erzeugen, die unmittelbar aus
JPanel abgeleitet wird und folgende Komponenten enthält:

Code:
class EinAddierer extends JPanel {
JButton rechne;
JTextField eingabe1;
JTextField eingabe2;
JLabel ergebnis;
//...
}

In der aus JFrame abgeleitet Klasse wird lediglich das Frame initialisiert und ein Objekt der
Klasse „EinAddierer“ instanziert. Ergeben sich Probleme bei der Anzeige?
Hinweis falls Sie mit den LayoutManagern von JAVA noch nicht vertraut sind:
Swing-Komponenten verfügen über die Methoden „setPreferredSize(Dimension)“. Geben Sie
hier mit „new Dimension(x,y)“ die gewünschten Komponentengrößen an. Was passiert dann,
wenn Sie die Anwendung „aufziehen“? Geben Sie der Anzeigeebene eventuell einen
Layoutmanager mit auf den Weg: „contentPane.setLayout (new FlowLayout());“
Statt der Implementierung des ActionListeners soll nun ein MouseAdapter für den JButton
registriert und die Methode zur Ereignisbehandlung in einer Adapterklasse implementiert
werden.
Code:
class MyAdapter extends MouseAdapter {
// Üblicherweise wird im Konstruktor das aufrufende
// Objekt als Parameter übergeben. In dem aufrufenden Objekt
// wird in einer Methode z. B. „myMouseClicked“ die Ereignis-
// behandlung vorgenommen.
public void mouseClicked (MouseEvent me){
// Bearbeiten des MouseClicks
// bzw. Aufruf der Ereignisbehandlung
// Zu lösen ist das Problem des Zugriffs auf
// die Komponente JButton
}
}

Was ist “MouseAdapter” für eine Klasse? Welche und wieviele Methoden werden im
MouseAdapter definiert? Wozu ist diese Klasse nützlich?
Instanzieren Sie den „Adapter“ als externe Klasse. Im vorstehenden Quellcode wird darauf
verwiesen, dem Konstruktor der Adapterklasse das aufrufende Objekt als Parameter zu
übergeben. Damit benötigen Sie nur Methodenaufrufe für das Eventhandling - was wäre die
Alternative?

Es soll auf Betätigung des Buttons das Additionsergebnis der beiden Textfelder in dem JLabel-
Feld ausgegeben werden. Dazu verwenden Sie:
• die Methode String getText() um aus den Komponenten “JTextField” den Inhalt auszulesen,
• die Wrapper-Klasse “Double” mit der Methode “Double.parseDouble (String)” zur
Interpretation des Inhalts als Double-Wert.
1. Testen Sie Ihr Programm mit syntaktisch korrekten Eingaben.
2. Platzieren Sie zwei „EinAddierer“ auf Ihrem Frame.

3. Zusatzaufgabe: Außer “mouseClicked” stellt MouseAdapter weitere Methoden zur Verfügung.
Implementieren Sie weitere (z. B. mouseEntered und mouseExited), um z. B. den
Hintergrund des Buttons zu verfärben.
Teil b) Exceptionhandling
In der vorstehenden Aufgabe tritt das Problem auf, dass bei unkorrekter Syntax (leeres
Textfeld oder Alpha-Zeichen) das Programm mit einem Laufzeitfehler abbricht. Um dies zu
verhindern stellt JAVA eine ausgefeilte Ausnahmebehandlung (“Exceptionhandling”) zur
Verfügung.
In der Vorlesung wird das Thema vertieft, hier sollen Sie lediglich eine Standardbehandlung
implementieren:
Code:
try {
// führe eine Anweisung wie z. B. Double.parseDouble() aus
} catch (NumberFormatException e) {
// melde auf geeignete Weise das Auftreten einer Ausnahme
// Das Programm kann fortgeführt werden!
}
An welchen Stellen im Programmtext kann die Ausnahmebehandlung eingefügt werden?
 
S

SlaterB

Gast
wie kann man denn nach einer so spezifischen Anwendung googeln?

eigentlich steht alles zu diesen simplen Dingen in jedem Tutorial,
das sich mit Swing und Ereignisbehandlung beschäftigt

wenn überhaupt könntest du nach Beispielen für
'ActionListener' oder 'MouseListener' suchen,

aber das ist ja so grundlegend, da macht es eigentlich keinen Sinn,
Beispiele anzuschauen, besser ganz normal lernen

------

Anfangen: ein entsprechendes JPanel bauen und anzeigen,
steht ja auch als erste Aufgabe, immer der Reihe nach
 
Es gibt halt Leute, denen fällt es schwer nach einem JavaBuch für Anfänger zu lernen. -Bei mir bleiben immer irgendwie noch Fragen offen, egal wie sehr ich mich bemühe( oder ob ich Java für Dummies habe oder Java für Fortgeschrittene). Wäre dem nicht so, würde ich ja den Post hier nicht reinsetzten.

Vielleicht mag mir ja doch noch jemand helfen, mir die Aufgabe vertständlich zu machen?Danke.
Zum ActionListener habe ich etwas gefunden, jedoch leider nichts brauchbares zum MouseListener....
 
S

SlaterB

Gast
aua, ein technisch/ naturwissenschaftliches Betätigungsfeld komplett ohne Literatur erlernen?
das wird nicht gutgehen,

übe das lieber jetzt als später..
http://www.galileocomputing.de/open...sel15_000.htm#Rxx747java150000400051C1F04E102

> Bei mir bleiben immer irgendwie noch Fragen offen

genau da setzt das Forum ein, nur her mit 'Satz y in diesem Link verstehe ich nicht',
das ist dann schön zu erklären,

aber 'ich weiß von nix, wie geht das insgeamt', was soll man denn darauf antworten?

---------

was verstehst du an der Aufgabe nicht?,
habe dir ja schon gesagt was du als erstes machen sollst,
mach das und mache dir keinerlei Sorgen um den Rest,
danach gehts zum nächsten EINZELNEN Punkt, dann stelle gerne eine Frage
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben