PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Event - Handling


Gast
2003-07-12, 12:18:23
Hi,


es geht da ums event-handling :


- Ich will für das Ereignis "Fenster wird geschlossen" eine Ereignisbehandlung erstellen, wobei die Umsetzung für die gegebene Klasse "WindowEnde" erfolgen soll.

class WindowEnde extends WindowAdapters{
public void windowClosing (WindowEvent e){
system.exit (0);}}


- Dann will ich als zweites Ereignis das Anklicken der Schalter als Implementierung des Interfaces ActionListener programmiern.
Als Ergebnis soll im Ausgabe - Feld die Zeichenkette in umgekehrter Reihenfolge der Buchstaben dargestellt werden.

class. Programm2 extends frame
{
TextField eingabe = new TextField();
TextField ausgabe = new TextField();
Button start = new Button ("Konvertierung");
public Programm2(){
set Layout (new GridLayout (3,1));
add (eingabe);
add (start);
add (ausgabe);

???

class WindowEnde extends WindowAdapter {
public void WindowClosing (WindowEvent e){
System.exit (0);
}
}

???

}

Bei den Fragezeichen weiss ich erstmal nicht so weiter.

- Wie gebe ich dafür eine main-methode an ?

Danke.

HellHorse
2003-07-12, 14:21:03
Also wenn bloss das Fenster geschlossen werden soll geht es auch einfacher.
Im Konstruktor der JFrames fügst du hinzu

this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


Falls du AWT verwenden willst oder sonstiges Zeugs noch in deinen WindowAdapter tun willst, musst die ihn natürlich noch deinem Frame hinzufügen mit addWindowListener()

Für den Button machst du entweder eine Action (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/Action.html) oder einen ActionListener (http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/ActionListener.html), den du dem Button mit addActionListener() hinzufügst. Natürlich muss der auf eine Art den Text des ersten TextFeldes holen können und den des zweiten setzten können (z.B durch innere Klasse).

Gast
2003-07-14, 18:58:11
OK, Danke.

Und wie sieht das Feld aus, welche die Zeichenkette in umgekehrter Reihenfolge der Buchstaben darstellen soll ?

Kannst Du das mit dem addWindowListener() nochmal genauer erklären ? Wenns nich allzuviel Zeit in Anspruch nimmt ...

HellHorse
2003-07-19, 09:25:45
Zum WindowListener:
Java ab 1.1 verwendet für Ereignisse das Delegationsmodell. D.h. eine Quelle (z.B. dein Frame) sendet Ereignisse an registierte Empfänger.
Falls nun irgend eine Klasse (kann auch deine Programm2 Klasse sein) auf Fensterereignisse hören will, muss sie WindowListener implementieren. Danach muss sie bei einem oder mehrerem Quell-Frames registiert werden. Das geschieht mit addWindowListener().Tritt nun ein WindowEvent in so einem Fenster auf, wird die entsprechenede Methode in den registierten Listener-Klassen aufgerufen.
Man besten liest du das Ganze mal nach, z.B. in Java ist auch eine Insel (http://www.java-tutor.com/)

zum Texfeld:
Das kann irgend ein normales (J)TextField sein. Mit getText() holst du dein Text, mit setText() setzt du ihn. Um die Ziechenkette umzukehrern, kannst du z.B StringBuffer.reverse() verwenden.