Özel davranışa sahip Swing'de bir ToolTip uygulamak istiyorum: kullanıcı bileşen üzerinde ne kadar uzun süre kalırsa, araç ipucunda daha fazla ayrıntı görünmelidir (yani, birkaç saniye sonra birkaç yeni satır eklenir) kullanıcı bileşeni üzerinde gezinme). Sadece bunun, Swing'le, gerçekten çok dağınık hale gelmeden yapılıp yapılamayacağını kontrol etmem gerek.Vurgulu davranışı değiştirmek için Swing'in ToolTipManager'ı genişletme?
- ToolTipManager uzatın
- geçersiz kılma (belki javax.swing.Timer kullanılır?) Bir zamanlayıcı başlatmak için mouseEntered: Şu anda Benim fikrim muhtemelen olacaktır. ipucunu yenilemek ve düzenli aralıklarla yeni bilgiler eklemek için setToolTipText ve createToolTip Çağrı
- geçersiz kılma
- Muhtemelen çok daha uzun bir şeye görevden gecikmeyi ayarlamak için setDismissDelay kullanmak zamanlayıcı (ya Integer.MAX_VALUE)
Böyle bir şey yapılabilir mi, yoksa Swing ile çalışmak için iyi bir yol değil mi (üzgünüm, benim için oldukça yeni)? Bunu yapmanın daha iyi bir yolu var mı?
[değiştir] Hmm, ToolTipManager'ın yalnızca paket görünürlüğüne sahip bir kurucuya sahip bir tekil olduğunu hatırladım, bu nedenle genişletilemez.
[değiştir 2] Şu anda birkaç çözüm deniyorum. Eklemeyi unuttuğum bir şey, hangi bileşenin üzerinde durduğunu bilmem gerektiğidir. Bu, bir mouseEntered() yöntemiyle bir çeşit dinleyici ile çalışmam gerekeceği anlamına gelir (ya da buna erişebilir) bilgi). Ve popup/tooltip ile başka hiçbir etkileşime ihtiyaç yoktur - sadece bilgileri görüntülemek gerekir.
"* Böyle bir şey yapılabilir mi? *" Evet. Yolunuz iyi bir seçenek gibi gözüküyor, ancak somut bir uygulama olmadan söylemek zor… – user1803551
Doğru! Eğer iyi bir seçenek gibi geliyorsa, ona bir şeyler vereceğim - muhtemelen en iyi yol bulma yöntemi. –
Daha fazla bilgi ile size biraz daha yol gösterebilirim. "Her ek X saniye boyunca gezinme, araç ipucu metnine başka bir satır ekleme" gibi bir şey istersiniz, başarmak istediğiniz şeyin iyi bir örneği olabilir mi? – user1803551