
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条)