Action.setCheck(boolean)?

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Moin,

den Ansatz, Menüpunkte und Toolbar-Buttons mit Actions zu versorgen finde ich schon toll. So muss ich nicht jedes einzelne Element als eigene Variable speichern um drauf zugreifen zu können. Ich speichere alle Menüpunkte beim Erzeugen in einem Vector und suche sie bei Bedarf über das ActionCommand um sie z. B. per setEnabled() zu manipulieren. Nun möchte ich aber auch Menüpunkte "toggeln" können, also einmal Toolbar-Button = ein, nochmal Toolbar-Button (oder wahlweise Menüpunkt) = aus. Dafür habe ich nirgendwo eine Möglichkeit gefunden. Für JMenuItems und JButtons im Toolbar wäre setSelected() die Lösung, richtig? Wenn ich die dafür aber doch wieder alle einzeln speichern müsste um sie zu manipulieren, wäre ja der ganze Vorteil der simplen Schnittstelle wieder dahin. Insbesondere wenn später noch Kontext-Menüs dazukommen sollen, wo ich ja nicht mal weiß, wieviele und welche Objekte, die ein Kontextmenü beherbergen, zum Zeitpunkt der Manipulation gerade existieren. In M$ VC++ mache ich das über CCmdUI::SetCheck(), was mir alle Menü-Einträge und einen evtl. Toolbar-Button mitzieht. welche Lösung bietet Swing hierfür?

Gruß Stephan
 
Danke für den Hinweis auf SwingX, habe mir die Lib gezogen und verwende sie jetzt. JXTable beantwortet auch schon die nächsten 12 Fragen, die ich sonst noch gestellt hätte...

Aber zum Thema: AbstractActionExt tut nicht was ich erwartet hatte. Wenn ich auf eine Instanz von AbstractActionExt, die mit einem JMenuItem und einem JButton verknüpft ist, setSelected(true) anwende, ergeben anschließend bei beiden Knöpfen isSelected() false. Wenn ich beide Knöpfe einzeln mit setSelected(true) bearbeite, liefert isSelected() zwar das erwartet Ergebnis, optisch tut sich jedoch nirgends was. Wie erreiche ich das Aussehen von "gedrückten Knöpfen" durch Manipulation der AbstractActionExt?

Gruß Stephan
 
Hört sich vernünftig an, werde ich heute Abend gleich mal probieren 😳
Aber ein JToggleMenuItem habe ich beim flüchtigen Blättern durch die API-Docu nicht gefunden, normal gehört neben einen dauer-aktiven Menüpunkt doch ein Häkchen...
 
1. 🙂 JToggleButton tut genau was ich erreichen wollte.
2. 🙁 AbstractActionExt.setSelected hat keine Auswirkung auf verknüpfte J(...)Buttons oder J(...)MenuItems.

Habe mich jetzt darauf beschränkt, dass wenigstens die dauernd sichtbaren JToggleButtons richtig dargestellt werden und steuere deren Select Status direkt. Schöner wäre natürlich, alle verknüpften Befehlsgeber mit der Action mitzuziehen, wie es setEnabled ja auch kann...

Gruß Stephan
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben