Doppelmouseclick

Status
Nicht offen für weitere Antworten.
S

Sponky76

Gast
Hallo,
ich wette diese ist für viele eine echte Anfängerfrage aber ich komme einfach nicht damit klar. Wie kann ich den doppelmouseklick verwalten???? Ich habe die Methode getClickCount des MouseEvents gefunden, nur leider kriege ich es nicht hin dass das Program nur den doppeclick rauspickt ohne davor auch noch den normalen click zu erarbeiten.
Hat jemand eine Idee wie ich nur den Doppelclick von dem normalen isolieren kann??
zum beispiel:
Code:
foo.addMouseAdapter(new MouseAdapter {
  public void mouseLeftClicked(MouseEvent e) {
    if (e.getCountClick()>=2) {
      System.out.println("2 Clicks");
    } else System.out.println("Andere Clicks");
  });
Auch wenn ich nur doppelclicks eingebe ist die Ausgabe immer

Andere Clicks
2 CLicks

Wie kann ich nur den Doppelclick ilsolieren???

Vielen Dank und schönen Tag noch!!!

Marc

/€ code tags verwenden
 

Sponky77

Mitglied
Leider brauche ich das Event single click also meine else Anweisung um ein anderes Ergebnis zu erzeugen. Mein Problem ist es gerade den Code für den Doppelclick zu erarbeiten ohne den Code für den Singleclick davor!!
 

Sponky77

Mitglied
Habe die Lösung gefunden auch wenn ich glaube dass es komplizierter nicht geht, na ja:

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;


public class prova extends Frame {
	
	private boolean _dbl = false;
	private prova _chiamante;
	private Label _b;
	
	public static void main(String[] args) {
		new prova("Titolo dell finestra");
	}

	public prova(String titolo) {
		super(titolo);
		_chiamante = this;
		Panel p = new Panel(new FlowLayout());
		_b = new Label("Irgendwo auf das Panel clicken");
		p.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				if (e.getClickCount()==1) {
					myThread mt = new myThread("pio", _chiamante);
					mt.start();
					_dbl=false;
				} else if (e.getClickCount()==2) {
					_dbl=true;
				} 				
			}
		});
		
		setSize(300,300);
		p.add(_b);
		add(p);
		setVisible(true);
	}
	
	public synchronized void go() {
		if (_dbl) {
			_b.setText("DoubleClick!!");
			_dbl=false;
		} else {
			_b.setText("SingleClick!!");
		}
	}
}

class myThread extends Thread {
	prova _chiamante;
	
	public myThread(String nome, prova poss) {
		super(nome);
		_chiamante = poss;
	}

	public void run() {
		try {
			sleep(300);
		} catch(Exception e) {}
		_chiamante.go();
	}
}

Die Zeit die das Thread wartet um zu sehen ob die Taste nochmal gedrückt wird müsste mit der Zeit eines Doppelclicks übereinstimmen :shock: :shock: :shock:

Ciao Ciao!!
Marc
 

Sponky77

Mitglied
Weil ich trotzdem immer noch das Event e.getClickCount=1 verwalten muss weil es was anderes machen soll als der doppelclick.
 
B

bygones

Gast
ich denke nicht. dass du es schaffen wirst, den double click vom single click zu isolieren, da jedem doppelten click nun einfach mal der einfache vorangeht !
 

Sponky77

Mitglied
deathbyaclown hat gesagt.:
ich denke nicht. dass du es schaffen wirst, den double click vom single click zu isolieren, da jedem doppelten click nun einfach mal der einfache vorangeht !

Na ja, meine Lösung mit dem Thread macht im moment gerade das.

Vielen Dank an Alle für die Hilfe.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben