Hugoderwolf
Aktives Mitglied
Thread Starter
- Dabei seit
- 07.03.2003
- Beiträge
- 349
- Reaktionspunkte
- 0
Ich steige jetzt gerade a bissl in Java ein. Ich komme mehr oder weniger von C und hab noch nicht die meiste Erfahrung in OOP. However, die Vorlesung "Grundlagen der Informatik I" geht auf Java steil.
Gerade hab ich mir ein Programm zusammengebastelt, das bei jedem clicken eines Buttons ein neues Label mit 'nem Text drin erzeugt. Nur das Konzept des ActionListeners geht mir noch nicht ganz auf. Ich halte es, grob gesagt, für einen Alptraum. Aber ich habe es hoffentlich nur nicht verstanden.
Das Buch zur Vorlesung hat mein Prof selbst geschrieben und er ist furchtbar von sich selbst überzeugt, weshalb er die historische erste "verpasste" Vorlesung von Hugoderwolf auf seinem Konto verbuchen kann. "Lehrbuch Grundlagen der Informatik" von Prof. Dr.-Ing. Helmut Balzert heißt das Werk und löst die Listener-Problematik in einem Beispielprogramm mit zwei Buttons so:
Da dreht sich mir bei einigen Sachen der Magen um.
1. Warum soll ich nur zum behandeln von dämlichen Buttonclicks eine extra Klasse und damit eine extra Datei schreiben?
2. Ich muss an diese Klasse noch umständlich die Hauptklasse übergeben, damit ich auf Funktionen darin zugreifen kann.
3. Ich muss in einer Funktion erstmal manuell Unterscheiden, von welchem Button nun das Event kommt und dann die entsprechende Funktion aufrufen (mal abgesehen davon, dass sowas eigentlich in ein switch(){...} gehört...)
Das ist doch völlig dämlich. Normalerweise sollte man dem Button als Eventhandler einfach eine Methode in der Klasse, die die GUI erstellt, zuweisen können. So ist das für mich eine überflüssige Datei und unmengen überflüssiger Code!
Jetzt sagt mir also mal, dass das, was da auf der Buch-CD ist, völliger Schrott ist und dass es viel eleganter geht. Am liebsten in etwa so, wie gerade beschrieben.
Gerade hab ich mir ein Programm zusammengebastelt, das bei jedem clicken eines Buttons ein neues Label mit 'nem Text drin erzeugt. Nur das Konzept des ActionListeners geht mir noch nicht ganz auf. Ich halte es, grob gesagt, für einen Alptraum. Aber ich habe es hoffentlich nur nicht verstanden.
Das Buch zur Vorlesung hat mein Prof selbst geschrieben und er ist furchtbar von sich selbst überzeugt, weshalb er die historische erste "verpasste" Vorlesung von Hugoderwolf auf seinem Konto verbuchen kann. "Lehrbuch Grundlagen der Informatik" von Prof. Dr.-Ing. Helmut Balzert heißt das Werk und löst die Listener-Problematik in einem Beispielprogramm mit zwei Buttons so:
Code:
/*Programmname: Kundenverwaltung5
* Abhoerer-Klasse: AktionsAbhoerer
* Abhoerer-Klasse ist eigenst‰ndige Klasse!
*/
import java.awt.event.*;
public class AktionsAbhoerer
implements ActionListener //wird von Java zur Verf¸gung gestellt
{
KundeGUI einGUI; //Referenz-Attribut: Referenz auf Erzeuger
//Konstruktor, durch Parameter wird Referenz auf aufrufendes Objekt ¸bergeben
AktionsAbhoerer(KundeGUI einKundeGUI)
{
einGUI = einKundeGUI;
}
public void actionPerformed(ActionEvent event)
{
//Ereignisquelle feststellen mit getSource
Object quelle = event.getSource();
if (quelle == einGUI.speichernDruckknopf)
einGUI.speichereKunde();//Reaktion auf Speichern
else if (quelle == einGUI.anzeigenDruckknopf)
einGUI.anzeigenKunden();//Reaktion auf Anzeigen
}
}
Da dreht sich mir bei einigen Sachen der Magen um.
1. Warum soll ich nur zum behandeln von dämlichen Buttonclicks eine extra Klasse und damit eine extra Datei schreiben?
2. Ich muss an diese Klasse noch umständlich die Hauptklasse übergeben, damit ich auf Funktionen darin zugreifen kann.
3. Ich muss in einer Funktion erstmal manuell Unterscheiden, von welchem Button nun das Event kommt und dann die entsprechende Funktion aufrufen (mal abgesehen davon, dass sowas eigentlich in ein switch(){...} gehört...)
Das ist doch völlig dämlich. Normalerweise sollte man dem Button als Eventhandler einfach eine Methode in der Klasse, die die GUI erstellt, zuweisen können. So ist das für mich eine überflüssige Datei und unmengen überflüssiger Code!
Jetzt sagt mir also mal, dass das, was da auf der Buch-CD ist, völliger Schrott ist und dass es viel eleganter geht. Am liebsten in etwa so, wie gerade beschrieben.