this question'dan aynı şeyi istemekten ancak SWT'yi kullanmak istiyorum: Düğme içindeki bir görüntüyle yalnızca kendi düğmeyle bir Düğme oluşturmanın bir yolu var mı? Eğer java'da özel bir düğme oluşturmanın başka bir yolu değilse?SWT ile özel bir düğme oluşturun
6
A
cevap
10
public class ImageButton extends Canvas {
private int mouse = 0;
private boolean hit = false;
public ImageButton(Composite parent, int style) {
super(parent, style);
this.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
switch (mouse) {
case 0:
// Default state
e.gc.drawString("Normal", 5, 5);
break;
case 1:
// Mouse over
e.gc.drawString("Mouse over", 5, 5);
break;
case 2:
// Mouse down
e.gc.drawString("Hit", 5, 5);
break;
}
}
});
this.addMouseMoveListener(new MouseMoveListener() {
public void mouseMove(MouseEvent e) {
if (!hit)
return;
mouse = 2;
if (e.x < 0 || e.y < 0 || e.x > getBounds().width
|| e.y > getBounds().height) {
mouse = 0;
}
redraw();
}
});
this.addMouseTrackListener(new MouseTrackAdapter() {
public void mouseEnter(MouseEvent e) {
mouse = 1;
redraw();
}
public void mouseExit(MouseEvent e) {
mouse = 0;
redraw();
}
});
this.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
hit = true;
mouse = 2;
redraw();
}
public void mouseUp(MouseEvent e) {
hit = false;
mouse = 1;
if (e.x < 0 || e.y < 0 || e.x > getBounds().width
|| e.y > getBounds().height) {
mouse = 0;
}
redraw();
if (mouse == 1)
notifyListeners(SWT.Selection, new Event());
}
});
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.keyCode == '\r' || e.character == ' ') {
Event event = new Event();
notifyListeners(SWT.Selection, event);
}
}
});
}
}
0
Hayır, bir düğmeye bir PaintListener ekleyebilirsiniz, ancak muhtemelen çok tuhaf görünecektir.
Yapmanız gereken şey, pencerenin stilini "sahiplenmiş" olarak ayarlamak ve çizim kodunuzu Button # wmDrawChild yöntemine eklemektir. Bu, dahili SWT sınıflarına bağımlılıklar eklemeniz gerektiği anlamına gelir ve yalnızca Windows için çalışır.
İlgili konular
- 1. SWT Düğme Açılır Kontrol
- 2. Yalnızca AS3 ile bir Düğme Oluşturun
- 3. JFace/SWT: InputDialog
- 4. SWT:
- 5. Android: özel düğme şekli
- 6. İki özel düğme oluşturma
- 7. Özel Düğme veya Standart denetleyici ile bir Visualforce sayfasına bağlantı
- 8. Özel bir Drawable oluşturun ve XML'de kullanın
- 9. PySpark ML'de özel bir Transformatör oluşturun ML
- 10. Yönetici listesine özel bir düğme nasıl ekleyebilirim?
- 11. Özel öznitelikleri check_box_tag içinde oluşturun
- 12. Özel Düğme çerçeve ben şöyle bir özel düğme çerçeve çizmeye çalışıyorum
- 13. SWT ile bileşenlerin üst kısmı nasıl değiştirilir?
- 14. Java SWT: Ana döngüyü özel durum işleyicisine sarın mı?
- 15. GWT ile UUID Oluşturun
- 16. Woocommerce yerine özel düğme/bağlantı ile sepete ekle
- 17. SWT GridLayout'ta ızgara hücresinin içeriği nasıl değiştirilir?
- 18. Düğme
- 19. Java'da swt ile görüntü nasıl gösterilir? bir şeyle gelmiyor şöyle
- 20. bir düğme var düğmenin
- 21. NIB'den bir UIView oluşturun
- 22. IonicHistory.goBack() ile Düğme
- 23. Düğme ListView.SelectedItem ile ilişkilendirme
- 24. Düğme
- 25. Rails ile bir Messenger Gönderen Alıcı Oluşturun
- 26. Phpunit ile bir alay sınıfı oluşturun?
- 27. Bir Java SWT penceresinde kaydırma çubuklarını etkinleştirme
- 28. C#: Özel Yüzde CPU Kullanımı Oluşturun
- 29. javascript onclick ile bir düğme oluşturmak için
- 30. Bootstrap ile bir düğme nasıl bağlanır?
Tüm sınıf kodunu okuyabilir misiniz? İşe yaramakta zorlanıyorum. Teşekkürler! – Hectoret
Sınıfı düzenledim. Derler ama aslında test etmedim. –