JCheckbox und JSpinner in JTable

Death89

Mitglied
Hey Leute,

hab folgendes Problem:
Mithilfe von Netbeans habe ich eine JTable erstellt, welche 3 Spalten besitzt.
In der ersten Spalte befindet sich je Zeile eine JCheckBox,
in der zweiten Spalte ein String und
in der dritten Spalte befindet sich jeweils ein JSpinner.

Nun möchte ich den JSpinner mithilfe der JCheckBox steuern. Wenn ich die CheckBox selektiere soll der Jspinner den Wert 1 anzeigen, beim deselektieren den Wert 0.

Doch wo kann ich überhaupt den Zustand der CheckBox abfangen, um dementsprechend zu reagieren?
 

Attila

Bekanntes Mitglied
Java:
table.getModel().addTableModelListener(new TableModelListener(){
   public void tableChanged(TableModelEvent e) {
      int row = e.getFirstRow();
      int column = e.getColumn();
      TableModel model = (TableModel)e.getSource();
      if ( column == 0 ) {
         Object data = model.getValueAt(row, column);
         model.setValueAt(data, row, column+2);
      }
   }
});
 

Death89

Mitglied
Das mit dem TableModelListener ist genau das, was ich brauche...

musste nur noch das Object Data vom Boolean-Wert in nen Integer umwandeln und fertig. Danke!
 

Death89

Mitglied
Hab mich wohl zu früh gefreut... :(

Hier erstmal der angepasste Quelltext:
Java:
jTable1.getModel().addTableModelListener(new TableModelListener(){
            @Override
   public void tableChanged(TableModelEvent e) {
  
      int row = e.getFirstRow();
      int column = e.getColumn();

      TableModel model = (TableModel)e.getSource();
      
      if ( column == 0 ) {
         Object data = model.getValueAt(row, column);
         if(data==false){
             data=0;
         }
         if(data==true){
             data=1;
            
             }
         model.setValueAt(data, row, column+2);
         }
         
      }
   
});

Nun ist es ja so, dass sobald die CheckBox aktiviert wird, der JSpinner auf 1 springt. Nun möchte ich ihn aber danach mithilfe des Drehfeldes auch auf 2,3...usw. stellen. Die Checkbox soll markiert bleiben.

D.h. also:
Beim Aktivieren der CheckBox soll 1 angezeigt werden
Wenn CheckBox bereits aktiviert--> Irgendwelche Zahlenwerte im Spinner von 1....200 zulässig und dabei bleibt die CheckBox auch aktiviert
Wenn CheckBox deaktiviert--> Jspinner zeigt 0

Außerdem: Wenn ich das JSpinner-Drehfeld von 1 auf 0 setzte soll die CheckBox sich deaktivieren



Ich hoffe ihr könnt mir nochmal helfen!?
 

mla.rue

Bekanntes Mitglied
genauso wie davor, nur diesmal für den JSpinner, ersteinmal braucht der einen Wertebereich von bis, und dann prüft der Listener ob der Wert == 0 ist, wenn ja, die Spalte mit der Checkbox entsprechend auf false, 0 oder Buxtehude setzen.
 

Death89

Mitglied
Hier der angepasste Quelltext:

Java:
jTable1.getModel().addTableModelListener(new TableModelListener(){
            @Override
   public void tableChanged(TableModelEvent e) {
  
      int row = e.getFirstRow();
      int column = e.getColumn();

      TableModel model = (TableModel)e.getSource();
      //Bei Veränderung einer Checkbox:
      if ( column == 0 ) {
         Object data = model.getValueAt(row, column);
         if(data==false){
             data=0;
         }
         if(data==true){
             data=1;
            
             }
         model.setValueAt(data, row, column+2);
         }
      
            if ( column == 2 ) {
         Object data = model.getValueAt(row, column);
         if(data==0){
             data=false;
         }
         if(data==1){
             data=true;
         }
         
        
         model.setValueAt(data, row, column-2);
         }
         
      }
   
});


Der Spinner reagiert nun leider garnicht, und wenn ich die CheckBox anwähle kommt die Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
 

Michael...

Top Contributor
Wenn Spalte A auf Änderungen in Spalte B reagiert und B auf Änderungen in A, dann bekommt man zwangsläufig eine Endlosschleife ;-)
Da muss man sich schon ein Regelwerk überlegen, in dem festgelegt ist auf welche Änderungen überhaupt und wenn ja, wie reagiert werden soll.

Unschön ist auch der "Missbrauch" von data als int und als boolean. Ausserdem wenn ein Wert 1 ist, kann er nicht gleichtzeitig 0 sein => else if statt des zweiten if
 

Death89

Mitglied
Ja ok, du hast recht, dass man if durch else if usw. ersetzen sollte.
Ich nutze das allerdings erst einmal um es zu testen...

Wäre echt toll wenn ihr ein wenig quelltext liefern könntet, schlißelich ist mir auch klar, dass ich ein "Regelwerk" erstellen muss...wie das aussieht, hab ich ja bereits erläutert. Nur die umsetzung funktioniert anscheinend nicht richtig...
 

Michael...

Top Contributor
Das "Regelwerk" hast Du weiter oben ja (zumindest grob) definiert.
1) Wenn die JCheckBox selektiert wird --> setzte JSpinner 1
2) Wenn die JCheckBox deselektiert wird --> setzte JSpinner 0
3) Wenn JSpinner auf 0 gesetzt wird --> deselektiere JCheckBox

In Deinem Code wird aber bei jeder Änderung der Spalte 0 die Spalte 2 geändert und umgekehrt, das ist zum einen unnötig und führt zum anderen zu dem Stackoverflow

Problematisch sind Regel 2) und 3) hier müsste man ggf. prüfen, ob die "Partnerspalte" bereits den gewünschten Wert enthält und in dem Fall diesen Wert nicht neu setzen.

Hier wäre es sicherlich auch besser mit einem spezifischern Datenmodell zu arbeiten - ist aber kein muss.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
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
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
E Swing Wechsel in JCheckBox abfangen AWT, Swing, JavaFX & SWT 10
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
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
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
C JSpinner AWT, Swing, JavaFX & SWT 6
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
K Swing JSpinner mit NULL AWT, Swing, JavaFX & SWT 3
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
M JSpinner, setValue AWT, Swing, JavaFX & SWT 7
N Swing JSpinner mit Datum aber ohne Uhrzeit AWT, Swing, JavaFX & SWT 2
J Swing JSpinner mit zusätzlichem Text? AWT, Swing, JavaFX & SWT 2
B JSpinner ChangeEvent erzwingen AWT, Swing, JavaFX & SWT 6
B JSpinner Textgröße anpassen AWT, Swing, JavaFX & SWT 2
B JSpinner welche Taste? AWT, Swing, JavaFX & SWT 5
B JSpinner Enter AWT, Swing, JavaFX & SWT 7
G JSpinner ohne Tausendertrennzeichen AWT, Swing, JavaFX & SWT 5
N Wertanzeige mittels JSpinner AWT, Swing, JavaFX & SWT 3
S JSpinner AWT, Swing, JavaFX & SWT 11
G Swing JSpinner nur mit Buttons ändern AWT, Swing, JavaFX & SWT 8
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
T Swing JSpinner in JTable AWT, Swing, JavaFX & SWT 9
C Größe von JSpinner fixieren AWT, Swing, JavaFX & SWT 4
J JSpinner + SpinnerNumberModel int auslesen AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
Eldorado Swing Popup-Menü mit Jspinner AWT, Swing, JavaFX & SWT 4
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
M JSpinner als TableCellEditor; buttons nur bei fokus sichtbar AWT, Swing, JavaFX & SWT 14
M JSpinner Font ändern AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben