Hallo,
ich habe eine JTable, welche in ihrer Zellen JCheckBoxen hat. Wenn der Benutzer eine Zeile in der Tabelle markieren will, klickt er mit der Maus auf eine der Zellen in deiser Zeile und sie wird gefärbt.
Wenn er aber dabei auf eine Zelle klickt, die den JCheckbox enthält, ändert er seinen Wert. Von 'selected' in 'non-selected' und umgekehrt. Das ist natürlich ein unerwünschtes Nebeneffekt. Eine Idee ist so zu machen, dass der JCkeckBox seinen Wert nach einem Doppelclick ändert. Aber ist so was überhaupt möglich? Und es ist irgendwie schwierig an den CkeckBox ranzukommen. Solche Code, z.B., funktioniert nicht:
Ich denke, weil der CheckBox sich eben in der Tabelle befindet. Ist er auf einer Panel, funktioniert die Code okay.
Eine andere Variante ist, dass der JCheckBox seinen Wert ändert, wenn genau auf ihn geklickt wird, und nicht auf die Zelle, welche ihn enthält. Aber wie wird das gemacht? Hat jemand damit schon konfrontiert und weiss vielleicht eine Lösung?
ich habe eine JTable, welche in ihrer Zellen JCheckBoxen hat. Wenn der Benutzer eine Zeile in der Tabelle markieren will, klickt er mit der Maus auf eine der Zellen in deiser Zeile und sie wird gefärbt.
Wenn er aber dabei auf eine Zelle klickt, die den JCheckbox enthält, ändert er seinen Wert. Von 'selected' in 'non-selected' und umgekehrt. Das ist natürlich ein unerwünschtes Nebeneffekt. Eine Idee ist so zu machen, dass der JCkeckBox seinen Wert nach einem Doppelclick ändert. Aber ist so was überhaupt möglich? Und es ist irgendwie schwierig an den CkeckBox ranzukommen. Solche Code, z.B., funktioniert nicht:
Java:
checkbox.addMouseListener(new MouseAdapter(
public void mouseClicked(MouseEvent e){
if (e.getClickCount() == 2){
System.out.println(" double click" );
}
}
});
Ich denke, weil der CheckBox sich eben in der Tabelle befindet. Ist er auf einer Panel, funktioniert die Code okay.
Eine andere Variante ist, dass der JCheckBox seinen Wert ändert, wenn genau auf ihn geklickt wird, und nicht auf die Zelle, welche ihn enthält. Aber wie wird das gemacht? Hat jemand damit schon konfrontiert und weiss vielleicht eine Lösung?