Portal > Foren > Java > Allgemeine Java-Programmierung > Eigene Action Klasse, ähnlich Listener Struktur programmieren?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 18.12.2005, 15:32 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 8
Standard Eigene Action Klasse, ähnlich Listener Struktur programmieren?

Hallo ich möchte eine Klasse schreiben die bei einem Ereignis an ein Spezielles Objekt mit einer bestimmten implementierten Methode einen Wert bzw ID an die Methode des Objektes liefert.
Die Methodik ist bekannt wie z.B. bei Action- Mouse- und anderen Listenern.

Zur Veranschaulichung:

// Das Interface

interface noetigeMethoden
{
public void incomingAction(int ID);
}

// Die Hauptklasse

class hauptKlasse implements noetigeMethode
{

public hauptKlasse()
{
new actionAusloesendeKlasse(this);
}


public void incomingAction(int ID)
{
//Auswertung von welchem Objekt die Action kommt.
}

}

// Die Problematik des Action auslösenden Objektes

class actionAusloesendeKlasse
{
private Object home;
private int ID;
public actionAusloesendeKlasse(Object home,int ID)
{
this.home = home;
this.ID = ID;
}

public esPassiertWas()
{
home.incomingAction(ID);
}

}


Wie die meisten schon gemerkt haben, funktioniert das nicht, weil
'actionAusloesendeKlasse' nicht weiß ob das übergebene Object die
Methode 'incomingAction(ID)' beinhaltet.
D.h. es ist gar nicht möglich home.incomingAction(ID) zu compilieren.
Natürlich kann man 'Object' mit 'hauptKlasse' ersetzen und die
Implementierung direkt als Methode in die Hauptklasse einfügen.
Dies ist dann nicht mehr universell und nicht das was ich programmieren
möchte.
Also Freunde wie wird das Problem gelöst?
Schließlich hat irgendwann mal jemand auch die ganzen Listener etc.
programmiert und es funktioniert einwandfrei.
Bin dankbar für jede Antwort.

missiju ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.12.2005, 17:06 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Statt "Object" als Typen solltest du das Interface verwenden, dafür ist es ja gedacht.
__________________
Patrick Gotthardts Weblog.
pago ist gerade online  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.12.2005, 12:24 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

an deiner stelle würde ich das naming auch nochmal überarbeiten...

1. Klassennamen werden immer groß geschrieben
noetigeMethoden wird zu NoetigeMethoden

2. Klassen und Methodennamen in einer einheitlichen sprache...
du mischst englisch und deutsch, das ist sehr unsauber und kann zu missverständnissen führen...
actionAusloesendeKlasse ist gemischte sprache...
sollte entwerder
aktionAusloesendeKlasse oder actionTriggerClass bzw ActionTriggerClass heißen...

am besten verwendet man beim programmieren(egal welche sprache) immer englisch, dann bekommt man auch keine probleme mit sonderzeichen bzw muss nicht immer ue für ü schreiben usw...

3. klassen,methoden und variablen namen sollten für sich sprechen, d.h. selbsterklärend sein.
noetigeMethoden sagt nichts darüber aus welche funktion dieses interface hat... sondern lediglich, daß es nötige methoden beinhalten, aber für was sie nötig sind weiß man nicht...


hier noch ein bischen überarbeiteter code
Code:
interface ActionObject
{
public void incomingAction(int ID);
}

// Die Hauptklasse

class MainClass implements ActionObject
{

public MainClass()
{
 new ActionTriggerClass(this);
}

public void incomingAction(int ID)
{
//Auswertung von welchem Objekt die Action kommt.
}

}

// Die Problematik des Action auslösenden Objektes

class ActionTriggerClass
{
private ActionObject home;
private int ID;
public ActionTriggerClass(ActionObject home,int ID)
{
this.home = home;
this.ID = ID;
}

public void somethingHappens()
{
home.incomingAction(ID);
}

}
merkst du den unterschied??
jetzt sollte es auch funktionieren...
beny_mcde ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
MenuItem Action Listener automatisch erzeugen `B Desktop-Applikationen und Grafik 5 24.02.2005 11:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45