Swing Wechsel in JCheckBox abfangen

Status
Nicht offen für weitere Antworten.

Eule

Mitglied
Hallo an Alle hier im Forum (juhu 1. post)

Ich habe hier eine JCheckbox und möchte den Wechsel von selected/unselected gerne kontrollieren. Hier heißt das genau, dass ich den Wechsel an mehrere Bedingungen knüpfen möchte.
Hat wer eine Idee, wie ich das ChangeEvent abfangen kann? Oder ist es besser, hier evtl. ganz auf eine Checkbox zu verzichten? Das Bild von selected und unselected habe ich eh ausgetauscht und so könnte ich zur Not auch ein JLabel nehmen und das Bild manuell auswechseln. Schöner fänd ich es aber trotzdem mit einer CheckBox.

Gruß
Eule
 

Kaffeebohn

Bekanntes Mitglied
Hallo Eule,

ich verstehe nicht ganz was du erreichen möchtest.

Willst du abfangen wenn jemand die Checkbox aktiviert oder deaktiviert? Das wäre dann wohl das Thema ActionListener.

Oder möchtest du, dass das Programm selbst den Haken setzt?
Das wäre dann die Methode chkbox.setSelected(true/false).
 

Eule

Mitglied
OK. Ich versuche noch mal das besser zu erklären.

Ich habe ein Programm, was einen Boolean in der CheckBox anzeigt. Als Beispiel seit es ausgewählt, also der Hacken ist gesetzt. Jetzt klickt der Benutzer auf die Box und würde damit den Hacken wegnehmen.
Das Programm soll aber statt den Hacken wegzunehmen nur den Wert nehmen, den es gerade hat (noch true) und den Wert an einen Server senden, der Fragt ob der Hacken entfernt werden darf. Der sendet wieder rum dann erst ein Signal zurück und sagt ob es ihm erlaubt ist zu wechseln.
Mit anderen Worten. Die Funktion, dass er es automatisch true/false setzt brauche ich gar nicht. Das erledige ich selbst.

Ich hoffe es ist einiger Maßen klar geworden
 

Kaffeebohn

Bekanntes Mitglied
Ok das würde ich jetzt klassisch über einen ActionListener regeln.


Java:
jx.addActionListener(new ActionListener() {
			
    public void actionPerformed(ActionEvent e)
    {
           //	Hier kommt rein was du gerne ausführen möchtest wenn jemand   
           //            das teil anklickt. ActionEvent e liefert weitere Infos.
     }
});

Ich weiß nicht ob du mit ActionListenern vertraut bist. Die Methode actionPerformed(..) wird aufgerufen wenn jemand den Haken setzt oder rausmacht. In der Methode kannst du den Server befragen und dann den Haken wieder reinsetzen wenn er nicht rausgemacht werden darf z.B.
 

Eule

Mitglied
Danke für die Antwort. Ich bin auch mit Actionlistenern vertraut.

Jedoch ist das gerade das was ich nicht will. Das kurzzeitig ein falscher Wert angezeigt wird. Das mag unter normalen Umständen nicht schlimm sein, aber wenn irgendwas mit dem Netzwerk oder Server ist, kann dort doch eine längere Zeit was falsches stehen. Was in diesem Fall aber schlimme Folgen haben kann.

edit: Ich kann natürlich mittels einem ChangeListener auch den alten Wert noch im Listener abfragen und unmittelbar wieder setzen. Aber warum muss ich das überhaupt erst machen?
 
Zuletzt bearbeitet:

Kaffeebohn

Bekanntes Mitglied
Ok verstehe. Wäre es dann nicht geschickter, den Haken schon beim Laden der Oberfläche zu deaktivieren, wenn der Server eine Änderung verbietet?

Edit:
Das wäre vielleicht auch im Sinne des Erfinders, eine Checkbox die man nicht verändern darf zu deaktivieren.
 
Zuletzt bearbeitet:

Michael...

Top Contributor
In dem Fall würde ich eventuell einen eigene Komponente nehmen, die einfach nur das Bild einer CheckBox zeigt. MouseListener drauf setzen, bei Click prüfen und ggf. das Bild austauschen.
 

Eule

Mitglied
kurz mal was zu meinem Programm damit die Problematik etwas klarer wird.

Ich habe einen Server und mehrere Clienten. Jeder Client hat die Checkbox und darf sie ändern. Auch hat jeder Client die Information, ob er die Checkbox ändern darf oder nicht. Nur hat der Server gewissermaßen das letzte Wort und bewahrt somit die Synchronisation aller Clienten.

Wenn der Benutzer keine Recht hat um die Checkbox auszuwählen (aus Client Sicht), dann ist sie auch deaktiviert.
Jetzt kann es aber sein, dass durch unglückliche Übertragungsfehler ein Client mal die Rechte falsch setzt. In diesem Fall würde der Server dann den Wechsel verhindern.

edit: mit setEnable(false) setzt er ja auch die Hintergrundfarbe anders, was dem Benutzer ja suggerieren würde, dass er nichts ändern darf. Das ist ja aber falsch.
Ich glaube ich mache das echt mit nem JLabel.
 
Zuletzt bearbeitet:

Kaffeebohn

Bekanntes Mitglied
Du möchtest also doppelt prüfen, ob ein Benutzer diesen Haken setzen darf, sehe ich das richtig? Einmal hat die Client-Software Information darüber ob geklickt werden darf, und zweitens wird auf jeden Fall noch mal der Server gefragt.

Sollte ein Benutzer den Haken setzten wollen, es aber nicht dürfen. So wundert er sich wieso der Haken nicht geändert werden kann obwohl er nicht deaktiviert ist.

Ich denke, der geschicktere Ansatz wäre eine Kontrolle an einder anderen Stelle und nicht an der Oberfläche. Also z.B. wenn das, was der Haken auslösen soll, vorher noch mal geprüft wird.
 

Eule

Mitglied
Im Prinzip hast du das schon richtig erfasst. Das doppelte abfragen ist zur Bandbreitenreduktion, da die Rechte relativ selten gewechselt werden und das wechseln von so welchen Checkboxen häufiger vor kommt. Wenn ich jetzt jedes Mal eine Anfrage an den Server senden würde, würde sich der Traffic für diesen Bereich vervielfachen.

Wenn er den Server fragt funktioniert das so: er fragt den Server ob er darf. Wenn nein, schickt er einen Fehlercode zurück. Wenn ja, schickt er die Änderung an alle Benutzer. Jeder Benutzer bearbeitet dann die Anfrage und setzt bei sich den Hacken. Hier wird also die Checkbox wirklich vom Server gesteuert.

Wie schon gesagt, wenn der Benutzer keine Rechte hat um den Hacken zu setzen, dass ist die CheckBox deaktiviert (also auch grau hinter legt).

Die Stelle ist schon die Beste, da der Hacken (in diesem Fall )eine grafische Oberfläche deaktiviert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
T Scene-Wechsel manchmal weiss AWT, Swing, JavaFX & SWT 3
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
I JavaFX-Scene-Überlagerung/Wechsel mit pausieren der anderen Scene AWT, Swing, JavaFX & SWT 0
L JavaFX Animation für Panel wechsel AWT, Swing, JavaFX & SWT 3
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
S JavaFX Pane Wechsel AWT, Swing, JavaFX & SWT 1
H Drag-Evente nach Container wechsel AWT, Swing, JavaFX & SWT 2
H Swing Wechsel zwischen Frames AWT, Swing, JavaFX & SWT 6
M Image wird nicht neugezeichnet nach dem Wechsel AWT, Swing, JavaFX & SWT 2
R Wechsel bei der GUI funktioniert nicht AWT, Swing, JavaFX & SWT 3
D KeyListener Problem bei JPanel wechsel AWT, Swing, JavaFX & SWT 2
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
U JPanel wechsel in JApplet AWT, Swing, JavaFX & SWT 14
B Focusverhalten und wechsel des KeyboardFocusManagers AWT, Swing, JavaFX & SWT 6
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
K Icon auf JButton mit Wechsel der Farbe AWT, Swing, JavaFX & SWT 2
D Wechsel der Komponenten im MainFrame . AWT, Swing, JavaFX & SWT 3
B JTable - Wechsel der Spalte bei TAB, RETURN oder Maus AWT, Swing, JavaFX & SWT 5
K JSpinner Werte verschwinden bei Panel Wechsel AWT, Swing, JavaFX & SWT 2
D Wechsel in Taskleiste führt zu verschwninden von Dialog AWT, Swing, JavaFX & SWT 18
S Wechsel zwischen JFrame und JDialog durch Benutzerauswahl AWT, Swing, JavaFX & SWT 2
Z Look&Feel-Wechsel bringt mein GUI durcheinander AWT, Swing, JavaFX & SWT 5
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
B JCheckBox ausrichten ? AWT, Swing, JavaFX & SWT 1
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
M Swing JCheckbox Namen vergeben? AWT, Swing, JavaFX & SWT 5
E Zustand der JCheckBox abfragen AWT, Swing, JavaFX & SWT 1
D JCheckbox und JSpinner in JTable AWT, Swing, JavaFX & SWT 9
K Swing JCheckbox ändern AWT, Swing, JavaFX & SWT 3
N ChangeListener und jCheckBox AWT, Swing, JavaFX & SWT 3
B JTable inkl. JCheckbox AWT, Swing, JavaFX & SWT 5
StrikeTom JCheckBox in JTable AWT, Swing, JavaFX & SWT 6
A Swing JCheckbox transparent machen AWT, Swing, JavaFX & SWT 7
G Swing JCheckBox, setEnabled(false) und HTML Text Problem AWT, Swing, JavaFX & SWT 5
Z Swing JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 8
B JCheckbox ja oder nein AWT, Swing, JavaFX & SWT 3
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
C Swing JCheckBox setEditable(false)? AWT, Swing, JavaFX & SWT 9
X Swing JCheckbox in JTable AWT, Swing, JavaFX & SWT 6
F DefaultTableCellRenderer blendet JCheckBox aus AWT, Swing, JavaFX & SWT 4
Burny91 Swing JCheckBox in JList einbetten AWT, Swing, JavaFX & SWT 4
K JCheckBox datenstruktur AWT, Swing, JavaFX & SWT 10
J Swing JCheckBox enabled, aber graues Kästchen AWT, Swing, JavaFX & SWT 2
S Swing Problem mit JCheckBox auf JPanel in JScrollPane AWT, Swing, JavaFX & SWT 8
C JCheckBox Kreuz statt Haken AWT, Swing, JavaFX & SWT 7
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
S GUI blocked after checked a JcheckBox AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
M JCheckBox Icon anpassen AWT, Swing, JavaFX & SWT 2
E Matrix mit JCheckBox AWT, Swing, JavaFX & SWT 29
Balbes Änderung des Wertes von JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 4
S Frage zu JCheckBox AWT, Swing, JavaFX & SWT 2
T Swing JCheckBox: Wie getState() abfragen? AWT, Swing, JavaFX & SWT 2
FoolMoon Swing JCheckBox neben Text in einer Tabelle AWT, Swing, JavaFX & SWT 2
J Icon einer JCheckBox AWT, Swing, JavaFX & SWT 6
S JCheckBox AWT, Swing, JavaFX & SWT 9
D JTable - JCheckbox und Renderer AWT, Swing, JavaFX & SWT 2
V JCheckBox in JTable AWT, Swing, JavaFX & SWT 3
T JCheckBox deselektieren (Haken wieder entfernen) - wie? AWT, Swing, JavaFX & SWT 5
W JRadioButton / JCheckBox problem AWT, Swing, JavaFX & SWT 6
K JCheckBox in einer JTable auswählbar machen AWT, Swing, JavaFX & SWT 2
J Listener erkennt Deselektierung von JCheckbox nicht AWT, Swing, JavaFX & SWT 13
T Dynamische Anpassung einer jCheckBox AWT, Swing, JavaFX & SWT 11
T JCheckBox ohne "Box"? AWT, Swing, JavaFX & SWT 6
H JCheckBox - Ist die Abfrage wirklich so umständlich ? AWT, Swing, JavaFX & SWT 3
A Problem der Größe von JCheckBox nach Hinzufügen eines Popups AWT, Swing, JavaFX & SWT 2
F Wie Item Listener zu JCheckBox(in JTable) hinzufügen? AWT, Swing, JavaFX & SWT 6
M JCheckbox, das selektieren verhindern AWT, Swing, JavaFX & SWT 9
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
A JCheckBox abfragen AWT, Swing, JavaFX & SWT 6
J Variabler VariablenIdentifier - JCheckBox AWT, Swing, JavaFX & SWT 9
I JTree und JCheckbox Problem AWT, Swing, JavaFX & SWT 4
G jCheckBox AWT, Swing, JavaFX & SWT 8
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
D Seltsamer Rahmen bei JCheckBox AWT, Swing, JavaFX & SWT 7
G JCheckBox mit Text und Icon AWT, Swing, JavaFX & SWT 5
M JCheckbox in JCombobox AWT, Swing, JavaFX & SWT 7
L jCheckBox - aktiviert und nicht aktiviert AWT, Swing, JavaFX & SWT 7
H jCheckBox abschalten AWT, Swing, JavaFX & SWT 3
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
G JCheckbox Buttongroup Problem AWT, Swing, JavaFX & SWT 7
P JCheckBox: das 4eck mit kreuz soll rechts vom wort stehen AWT, Swing, JavaFX & SWT 3
R JCheckBox mit Image und Text AWT, Swing, JavaFX & SWT 5
G JCheckBox nicht änderbar machen AWT, Swing, JavaFX & SWT 2
V Statusabfrage von JCheckBox und JComboBox AWT, Swing, JavaFX & SWT 7
P JCheckBox AWT, Swing, JavaFX & SWT 4
L Probleme mit JCheckBox AWT, Swing, JavaFX & SWT 15
A JButton und JCheckBox im JTree reagieren nicht AWT, Swing, JavaFX & SWT 13
J JCheckBoxMenuItem und JCheckBox synchronisieren AWT, Swing, JavaFX & SWT 6
D Welche JCheckBox des Arrays ist das? AWT, Swing, JavaFX & SWT 2
P JCheckbox einmal gewählt immer gewählt ? AWT, Swing, JavaFX & SWT 2
M Weiße JCheckBox? AWT, Swing, JavaFX & SWT 5
S Herausbekommen welche JCheckBox selectiert wurde AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben