Für ein Schulprojekt muss ich eine einfache malen Anwendung, die Linien, Ovale und Rechtecke zeichnen kann.Swing: Link Umschalttasten zusammen mit einer Tastengruppe, zusammen mit entsprechenden Menüpunkten
Die Zuweisung gibt an, dass ich die Symbolleistenschaltflächen und Menüelemente für jede Art von Form benötigen.
Ich möchte ein wenig darüber hinaus gehen, indem Sie die Schaltflächen JToggleButtons
in der Symbolleiste und die Menüoptionen JRadioButtonMenuItems
. Darüber hinaus möchte ich, dass, wenn Sie eine der Symbolleistenschaltflächen auswählen, die anderen abgewählt werden, der entsprechende Menüeintrag ausgewählt und die anderen Menüpunkte abgewählt werden. Gleiches für die Auswahl eines der Menüpunkte.
Ich weiß, dass ich AbstractButton
mit einem ButtonGroup
gruppieren kann, aber ich bin nicht sicher, ob das der richtige Weg ist, denn obwohl es eine "Gruppe" von Knöpfen gut behandelt, bin ich nicht sicher, dass es zwei behandeln kann parallele Gruppen.
Ohne ButtonGroup
würde bedeuten, dass in jedem der 6 Event-Listener ich die anderen Schaltflächen manuell deaktivieren müsste, und jedes Paar würde den gleichen Code aufrufen, um den Formentyp festzulegen.
Ich könnte auch zwei ButtonGroup
s, eins für das Menü, eins für die Symbolleiste, aber dann muss ich auch Formtyp Einstellungscode zu duplizieren.
In beiden Situationen gehe ich auch das Risiko ein, dass das Menü eine Schaltfläche setzt, die einen Menüeintrag setzt, der eine Schaltfläche ad infintum setzt.
Was ist der beste Weg, um dieses Problem anzugehen?
(Bonuspunkte für die Möglichkeit, das Problem mit den Netbeans GUI-Designern zu lösen, es ist nur einfacher)
Bonuspunkte für den Einsatz ohne GUI-Designer. Sie verbringen Ihre Zeit damit, Java zu lernen, das tragbar ist, eher die IDE, die es nicht ist. – camickr
@camickr - Ich bevorzuge es tatsächlich, Textmate und das Terminal über eine IDE zu verwenden, es ist nur so, dass der GUI-Designer die Dinge viel schneller macht * SO *. Mein Punkt war, dass ich es lieber im Designer lösen würde, um zu sehen, wie es gemacht wurde, als sich damit zu beschäftigen, den automatisch generierten Code zu bearbeiten und stundenlang herauszufinden, warum kleine Dinge nicht funktionieren. –