Objekte in Kategorien einteilen.

Volvagia

Top Contributor
Sorry wegen den unpassenden Titel, aber mir ist nichts besseres eingefallen.
Ich habe irgendwie gerade eine Denkblockade.

Ich habe ein paar Klassen, die alle von der selben erben und in 5 Kategorien eingeteilt werden sollen. Wenn z. B. eine Taste mit einer id gedrückt wird, sollen alle verfügbaren Objekte mit Textnamen angezeigt werden. Dabei ist die Bedingung, ob es angezeigt wird für jedes komplett unterschiedlich. Wird der Textname ausgewählt, soll die Klasse instanziert werden.

Meine Idee war es, alle Klassen-Objecte in Arrays zu schreiben, also jede Kategorie hat ein Array. Da die Klassen, die eingeteilt werden, keine Konstruktor-Parameter besitzen, könnte ich sie durch newInstance einfach erzeugen. Aber mir fehlt die Möglichkeit, zu überprüfen, ob das Objekt avaible ist, und den Namen bei der Klasse abzufragen.

Hat vielleicht jemand eine Idee, wie ich das am geschicktesten machen könnte?
 
Was meinst du mit "ob das Objekt avaible ist"? oO
Irgendwie verstehe ich nicht wirklich was du da machen willst.
Du hast verschiedene Klassen, die sich wodurch unterscheiden?
Auf den Namen der Klasse kannst du mit
Code:
class.getName()
zugreifen.
 
Ich wollte eigendlich ein Baumenü bauen. Es gibt 5 Buttons, wenn man einen klickt soll auf einen Panel alles was zu bauen möglich ist des jeweiligen Typs angezeigt werden. Die Werte, die angeben ob das Ding gebaut werden kann, stehen in einer Singleton-Klasse. Jetzt weiß ich aber nicht, wie ich am besten die Klassen der Dinge, die gebaut werden können den Buttons zuweiße, und wie ich den Namen (nicht Klassennamen sondern selbst festgelegten String) und die Prüfmethode, ob das Ding gebaut werden kann festlege, da ja leider keine static abstract-Methoden oder das Überschreiben einer statischen Methode möglich sind. :bahnhof:
 
Ich wollte das eigendlich ein wenig dynamischer gestallen. Sonst müsste ich, nach dem ein Button gedrückt wurde, es in etwa so machen: (Vorrausgesetzt, auf dem Panel befindet sich eine List)

Java:
if(Objekt1.canBuild())
	listModel.addElement(Objekt1.getName());
if(Objekt2.canBuild())
	listModel.addElement(Objekt2.getName());
if(Objekt3.canBuild())
	listModel.addElement(Objekt3.getName());

usw.
Ich dachte, dass es da vielleicht einen schöneren Weg gibt.
 
Ich denke mal so wie du es vorhast läuft es auf reflection hinaus.
Oder du erstellst schon vorher Instanz von jeder Klasse (die kannst du dann im Array bzw Liste halten) und greifst aud die Methooden zu.
 
Danke, ich denke die Instanzen hören sich am sinnvollsten an, da ich mich mit Reflection nicht auskenne.
Leider funktioniert mein Internet-Zugang seit gestern Nacht nicht mehr, deshalb kann ich mich auch nicht einlesen, und pausieren will ich auch nicht.
 

Zurück
Oben