Hallo, ich habe eine Denkblockade oder bin gar auf dem Holzweg! Ich habe ein Javaprogramm mit einem JFrame (wir nennen es mal FMain). In diesem FMain ist eie JComboBox mit 4 Items. Diese lassen sich auswählen, auswerten usw. FUNKTONIERT! Des weiteren habe ich eine Klasse (diese nennen wir mal CButton), in der 3 Buttons erstellt und in einer Gruppe zusammengefasst werden. Aus meinem MainFrame heraus kann ich nun 4 Objekte der Klasse CButton erstellen und mittels Übergabeparametern die Buttons entsprechend der Items benennen. Es wird schon deutlich, die Objekte und die ComboBox sollen mal zusammengehören. Daneben habe ich ein leeres JPanel. Und nun zu meinem Problem: je nach gewähltem Item soll das enstprechende Objekt, also die Buttons, in diesem JPanel angezeigt werden. Den Quelltext wollte ich nicht hochladen, da das Programm schon ziemlich fortgeschritten und somit etwas umfangreicher ist. Für Tipps bin ich dankbar, Oliv.
Ja und wo ist nun das Problem? Mach einfach mehrere Panels mit den Buttons und schalte immer nur eins sichtbar.
Ich dachte eher an eine Art "iFrame" aus HTML, wenn du verstehst was ich meine. Aber damit laufe ich bei Java wohl gegen eine Wand. Das heißt (wenn ich richtig verstehe) einfach 4 Panels mit den Buttons anlegen und je nach gewähltem Item setVisible(true) und den Rest false. Klingt einfach, macht aber in meinen Augen eine spätere Erweiterung des Programms, besonders der ComboBox, erschwerlich. Wie ich das versuche (und scheinbar nicht checke) bräuchte ich nur einen Eintrag in der ComboBox hinzufügen und ein neues Objekt mit den jeweiligen Parametern erstellen lassen.
Ob etwas leicht erweiterbar ist, hängt vom Programmierer und vom Design der Software ab. Mit dem factory design pattern ginge das so wie du es sagst.
Mach es einfach folgendermaßen: Wird ein Objekt in der Combobox ausgewählt, entfernst du alle Objekte aus dem Panel (removeAllComponents oder so heißt das) fügst den Button hinzu und rufst revalidate/validate (je nach restlicher Struktur) auf dem Panel auf. Vieleicht tuts das schon weiß aber nicht was du vorhast, mir erscheint das etwas doppelt gemoppelt wenn ein JCombobox Buttons anzeiget die auchoch in einer anderen Klasse sind und das ganze soll erweiterbar sein... Eventuell ist es "sauberer" EINEN Button zu haben und die auszuführende Aktion/Reaktion über die Combobox zu realisieren. Du könntest auch einen Button nutzen und per Combobox nur den Text/Aktion ändern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.