Java Swing - JCheckbox mit 3 Zuständen (vollständig ausgewählt, teilweise selektiert und abgewählt) [duplizieren]

8

Ich möchte ein JCheckbox , das wie folgt drei Zustände hat:

Ссылка

  1. Teilweise ausgewählt
  2. Nicht ausgewählt
  3. Vollständig ausgewählt

Q1. Kann ich den JCheckbox für den obigen Zweck verwenden oder muss ich eine benutzerdefinierte Swing-Komponente verwenden?

    
Yatendra Goel 23.04.2010, 20:32
quelle

8 Antworten

5
4

Oh ja, aber Sie müssen eine benutzerdefinierte Komponente erstellen.

Sehen Sie sich diesen Artikel im Java-Spezialisten an und prüfen Sie, ob er für Sie funktioniert.

Es braucht jedoch etwas Arbeit in OSX.

http://img717.imageshack.us/img717/7454/capturadepantalla201004np.png

WinXP:

alt text http://img691.imageshack.us/img691/8682/capturadepantalla201004n.png

    
OscarRyz 23.04.2010 20:40
quelle
3

Ich weiß nicht, warum jemand die Lösungen mit zusätzlichen Icon-Png-Dateien anbietet, während java api eine große Funktionalität für die überschreibende painIcon (..) -Methode bietet.

Die beste leichtgewichtige Lösung zur Bestimmung der CheckState-Checkbox-Haltung mit drei Zuständen ist das IMO ClientProperty -Attribut.

%Vor%

Verwendung: TCheckBox tcb = new TCheckBox("My CheckBox");

    
s1w_ 05.11.2014 04:08
quelle
2

Wenn Sie versuchen, eine Reihe von Kontrollkästchen zu erstellen (was ein häufiger Grund ist, ein Kontrollkästchen mit drei Zuständen zu verwenden), lesen Sie Jide Commons .

    
I82Much 23.04.2010 21:22
quelle
1

Das UI-Element JCheckBox unterstützt es nicht direkt, aber Sie können es austricksen:

%Vor%

Natürlich ist dies nur der UI-Teil, Sie müssen Ihren Zustandsautomaten mit einem benutzerdefinierten Modell implementieren.

    
Daniel 16.06.2012 22:10
quelle
1

Sie benötigen etwas, das die Status des Kontrollkästchens enthält. Ich benutze ein benutzerdefiniertes Modell.

%Vor%

In Ihrem benutzerdefinierten ToggleButtonModel

%Vor%     
noclayto 16.04.2013 20:28
quelle
0

Sie können dieses Ergebnis in dieser verwandten Antwort erhalten:

Ссылка

    
Daniel De León 09.04.2013 09:33
quelle
0

Ich habe gerade eine ThreeStateCheckBox-Klasse in Java 8 erstellt, die JCheckBox verwendet / imitiert, einstellbares Verhalten hat (zB sollte sie auf die volle Breite, auf die volle Höhe reagieren und wo sollte sie platziert werden, wenn die Komponente vom Layout gestreckt wird "Kann der Benutzer den unbestimmten Zustand bewirken? Kann der Benutzer dies beeinflussen?" Und sieht in allen Standard-LookAndFeels korrekt aus (Sie müssen jedoch ein zusätzliches Argument angeben, wenn Sie Nimbus verwenden). Nahm mich die letzten 5 Stunden.

Demo-Code ist am Anfang der Klasse enthalten. BEARBEITEN: Screenshot

Konzept:

Es wird eine normale JCheckBox ohne Text verwendet, so dass Aussehen und Verhalten klassisch sind und die Größe der Box mit dem paintComponent-Code gemessen werden kann. Ein gefülltes Rechteck wird für den unbestimmten Zustand gemalt. Die JCheckBox wird programmgesteuert festgelegt, wodurch das Ereignis nicht ausgelöst wird, seit ein ActionListener verwendet wurde.

Ein Boolescher Wert wird verwendet, um den Zustand auszudrücken. Die Klasse selbst erweitert KEINE Komponente, also hat sie nur die wesentlichen Methoden. Alle verwendeten Komponenten sind exponiert.

%Vor%     
Dreamspace President 20.11.2015 13:13
quelle

Tags und Links