Java Problem mit MouseListener

01/10/2014 08:42 lukas_k#1
Hayhou,

habe ein kleines Problem in Java bei dem ich nicht weiter komme. Hab eine Oberfläche mit einer jTable erstellt und möchte nun einen Wert per Doppelklick in ein Feld einfügen.

Schön und gut, habe einen MouseListener eingebaut der dann so aussieht:

Code:
private void jTable1MouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 2) {
//code
}
So passiert allerdings gar nichts, und ich komme dann in den Bearbeitungs-Modus der Tabelle. Lasse ich die if-Anweisung weg funktioniert alles und bei einem normalen Klick wird der Code ausgeführt.

Woran liegt das und vor allem, wie kann ich das am besten lösen:confused:
Falls es was zur Sache tut, ich arbeite mit Eclipse und Jigloo.
01/10/2014 15:04 XxharCs#2
Der Code funktioniert nicht weil die Cell des Tables editierbar ist, weil das Mouse Event vom CellEditor listener aufgefangen wird.

Hast du dir schon den DefaultCellEditor angesehen? Er hat eine setClickCountToStart() - Methode. ([Only registered and activated users can see links. Click Here To Register...])

Eine weitere Möglichkeit, ist es einen eigenen Editor zu machen und den alten zu überschreiben.
Bsp:
Code:
class MyEditor extends AbstractCellEditor implements TableCellEditor {

    ...
    ...
    @Override
    public boolean isCellEditable(EventObject anEvent) {
        if (anEvent instanceof MouseEvent) { 
            return ((MouseEvent)anEvent).getClickCount() >= 2; 
        }
        return true;
     }