L
Lau
Gast
Hallo!
Ich habe ein Traysymbol, in welchem ich Einträge auswählen kann. Hinter den Einträgen stecken Module/Klassen => jeder Eintrag verweißt auf ein solches. Da ich nicht weiß, wieviele Module ich in Zukunft noch dazuprogrammiere, frage ich mich: ist es möglich, die Trayeinträge und vorallem die dazu passenden Actionlistener dynamisch zu erzeugen?
Ich stelle mir das ungefähr so vor: ich habe eine Liste. Nur diese muss ich bei jedem neuen Modul erweitern, indem ich das Modul zur Liste hinzufüge. Alles andere soll von selbst passieren.
Die Trayeinträge wären nicht das Problem denke ich. Ich gehe einfach durch die Liste durch und rufe für jeden Eintrag (also für jedes Modul) folgendes auf:
tray.add(new MenuItem(Modul.toString()));
Oder ich erzeuge erst das MenuItem, dann könnte ich gleich noch einen ActionListener dazupacken:
MenuItem item = new MenuItem(Modul.toString());
item.addActionListener(...);
tray.add(item);
Nur: woher hole ich den ActionListener? Denn muss ich dann erst per Hand erstellen, oder wie? Das wäre sehr schade.
Oder köntne ich irgendwie tricksen, indem ich für jeden Eintrag den gleichen Listener aufrufe, und erst dieser eine Unterscheidung der Module betreibt?
Danke!
Ich habe ein Traysymbol, in welchem ich Einträge auswählen kann. Hinter den Einträgen stecken Module/Klassen => jeder Eintrag verweißt auf ein solches. Da ich nicht weiß, wieviele Module ich in Zukunft noch dazuprogrammiere, frage ich mich: ist es möglich, die Trayeinträge und vorallem die dazu passenden Actionlistener dynamisch zu erzeugen?
Ich stelle mir das ungefähr so vor: ich habe eine Liste. Nur diese muss ich bei jedem neuen Modul erweitern, indem ich das Modul zur Liste hinzufüge. Alles andere soll von selbst passieren.
Die Trayeinträge wären nicht das Problem denke ich. Ich gehe einfach durch die Liste durch und rufe für jeden Eintrag (also für jedes Modul) folgendes auf:
tray.add(new MenuItem(Modul.toString()));
Oder ich erzeuge erst das MenuItem, dann könnte ich gleich noch einen ActionListener dazupacken:
MenuItem item = new MenuItem(Modul.toString());
item.addActionListener(...);
tray.add(item);
Nur: woher hole ich den ActionListener? Denn muss ich dann erst per Hand erstellen, oder wie? Das wäre sehr schade.
Oder köntne ich irgendwie tricksen, indem ich für jeden Eintrag den gleichen Listener aufrufe, und erst dieser eine Unterscheidung der Module betreibt?
Danke!