Bir bileşende fare çift tıklandığında nasıl harekete geçebileceğimizi bilmek istiyorum.java'da çift tıklatma belirleme
cevap
public void mouseClicked(MouseEvent event)
{
if (event.getClickCount() == 2) {
System.out.println("double clicked");
}
}
Eğer Swing demek senin Bileşeni için bir MouseListener atamak varsayarsak:
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){
// your code here
}
}
});
Referans:
- Java Eğitimi: How to write a Mouse Listener
Kullanıcılarınızın kısa bir gecikmede birden fazla çift tıklama yapmasına izin vermek istiyorsanız 10 yeterli değildir. Masaüstü yapılandırmasıyla sınırlıdır. Sorunu atlamasına Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
iyi bir yolu sonucunu bakarak alabilirsiniz getClickCount()
çek kullanmak ancak tıklama arasındaki aralığı max seçebileceğiniz bir Timer
kullanmak ve kendi kendine işlemek için değil saymak (çok basit). ilişkili
kodu: Win Xp OS ve mükemmel ile test edilmiştir
boolean isAlreadyOneClick;
@Override
public void mouseClicked(MouseEvent mouseEvent) {
if (isAlreadyOneClick) {
System.out.println("double click");
isAlreadyOneClick = false;
} else {
isAlreadyOneClick = true;
Timer t = new Timer("doubleclickTimer", false);
t.schedule(new TimerTask() {
@Override
public void run() {
isAlreadyOneClick = false;
}
}, 500);
}
}
.
Bir bayrağın işaretini kaldırmak için bir 'Timer' akıllı kullanımı, iki isim arasındaki karşılaştırmadan daha karmaşık fakat kullanımı daha kolaydır. Gördüğüm dezavantaj: 'isAlreadyOneClick' nerede saklanır? Birbirini çözerken problemler getiriyor gibi görünüyor. Bu çözümde, tıklamaların çok hızlı bir şekilde yapılması durumunda ("hayal edelim") "delikler" de olacaktır: "Zamanlayıcı", bayrağı her seferinde sıfırlayacak ve sadece bu zamanda, gerçek bir çift tıklama ele alınacaktır. Ayrıca, bu yöntemin gerçekten GC ve kaynak dostu olmadığını düşünüyorum. – Benj
Hello Benj Çöp Toplayıcı ve bayrak arasındaki ilişkiyi anlamayı başaramıyorum. Devam etmenin bir şeyleri kırdığını düşünüyor musun? Lütfen, örnek ve sonuçlarını daha da netleştirebilir misiniz? Üzgünüz, ne göstermeye çalıştığınızı göremiyorum. – davidxxx
Gördüğüm iki şey var: 1/Sadece "else" parçasının her çalıştırılacağı zaman, yeni bir "Timer" nesnesi oluşturulacak. Bu zamanlayıcıyı, nesnenin sağ tuşu veya başka bir yerden başka yerlerden yönetmesine izin vermek için bir alanın alanı olarak hareket ettiririm. 2/Bu zamanlayıcılar, her 500ms çift tıklamayı unflaing olacak, sonra iki kez çift tıklama varsa, beklendiği gibi çalışmayan için şans vardır. – Benj
- 1. JList öğesinde çift tıklatma olayı
- 2. GEF editörüme çift tıklatma dinleyicisi nasıl eklenir?
- 3. Çift/tek sayıları (tamsayılar) belirleme?
- 4. Visual Studio Tasarımcısı'nda bir denetim için çift tıklatma olayını belirtin
- 5. Yazıcı ile javada dizileri kullanma
- 6. jTable sağ tıklatma menüsü
- 7. Uçucu değişken, javada statik olarak tanımlanabilir mi?
- 8. Salatalık javada senaryo adı nasıl alınır?
- 9. Pencereler için tutulmayı kullanarak javada akış
- 10. Koyu renklerin parlak hale getirilmesi javada parlak
- 11. Görünümdeki boş alanı belirleme
- 12. Ayrıştırıcı tıklatma ve engelleme engellemesi
- 13. Adaptördeki tıklatma olayı nasıl yapılır
- 14. C#: [], çift [] [] ve çift
- 15. android: sembolik bir bağlantı belirleme
- 16. jQuery DIV öğesi için tıklatma() ve dblcick() nasıl ayırt edilir?
- 17. JavaFX TableView Tek tıklatma ve otomatik ekleme satırı ile düzenle?
- 18. jQuery - basamaklı sınıflar ve tıklatma işlevleri sorunları
- 19. Robolectric, Liste öğelerini tıklatma ile ilgili sorunlar
- 20. Ruby Mechanize ile bir düğmeyi tıklatma
- 21. wpf liste görünümü sağ tıklatma sorunu
- 22. R çıkışını bellekten matrise oku (paket tıklatma)
- 23. JQuery Tıklatma etkinleştirme düğmesi yok düğmesini tıklatın
- 24. Döngünün dışında bir değişkenin değerini javada tutmak istiyorum
- 25. ActionScript’li javada kod çalıştırırken birden fazla görev gerçekleştirin
- 26. Javada, bunlardan biri sinyal verilinceye kadar çoklu `Koşullar 'beklemek nasıl
- 27. Oynatıcı ve oyuncu başına oyuncu bazında kartların geri döndürülmesi javada
- 28. JavaFX 8 WebEngine: javascript'ten javada System.out'a console.log() nasıl alınır?
- 29. Çok satırlı metin javada printdialog ile nasıl dışa aktarılır?
- 30. çift eksi çift hassasiyet veren problemler
Muhtemelen sol fare düğmesiyle çift tıklamayı saymak için 'event.getButton() == MouseEvent.BUTTON1' seçeneğini de kontrol etmek isteyeceksiniz. –