# Doppelklick auf JTextField



## max5432 (30. Jan 2010)

Hallo allerseits

Versuche einen Doppelcklick auf einem JTextField abzufangen. 


```
JTextField txt = new JTextField(12); 
txt.addMouseListener(new MyMouseListener());
```

Und die Klasse MyMouseListener:

```
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.


----------



## icarus2 (30. Jan 2010)

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.


----------



## max5432 (30. Jan 2010)

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 ...


----------

