Doppelklick auf JTextField

max5432

Aktives Mitglied
Hallo allerseits

Versuche einen Doppelcklick auf einem JTextField abzufangen.

Java:
JTextField txt = new JTextField(12); 
txt.addMouseListener(new MyMouseListener());

Und die Klasse MyMouseListener:
Java:
class MyMouseListener extends MouseAdapter{

// ...

public void mouseClicked(MouseEvent e) {
    int count = e.getClickCount();

    if (count == 2 && e.getButton() == MouseEvent.BUTTON1){

        // ...    

    }

    // ...

}

Bei jedem Doppelklick wird die Selektion übersprungen, da count mit 1 versehen wird.

Wieso wird der Doppelklick hier nicht erkannt? Denn, count müsste den Wert 2 haben?

Danke.
 
Zuletzt bearbeitet:
Geht doch:
(Lass dich von dem etwas komplizierten Code in der main-Methode nicht stören ;-)
[Java]
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JTextField;


public class DoubleClick extends JFrame {

Container c;
JTextField field;

public DoubleClick(){

c = getContentPane();

field = new JTextField("Ich bin ein Textfeld");
field.addMouseListener(new MouseAdapter(){

@Override
public void mouseClicked(MouseEvent e){

int count = e.getClickCount();

if(count == 2){
System.out.println( count );
}
}

});

c.add(field);
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable(){
@Override
public void run(){
new DoubleClick();
}
});

}

}
[/Java]

Ich glaube eher, dass es an der zweiten Bedingung liegt. Nimm mal das "&& e.getButton() == MouseEvent.BUTTON1" raus. Dann sollte es schon klappen.
 
Vielen Dank.

Ja, du hast recht: geht doch!

Ich habe das System neu gestartet und dannach hat es funktioniert. Vermutlich habe ich im Hintergrund ewtas am Laufen gehabt, was nicht sauber geschlossen wurde ...
 

Zurück
Oben