Java Reference
In-Depth Information
LISTING 12.4
Continued
28: public static void main(String[] arguments) {
29: new MousePrank();
30: }
31: }
32:
33: class PrankPanel extends JPanel implements MouseMotionListener {
34: JButton ok = new JButton(“OK”);
35: int buttonX, buttonY, mouseX, mouseY;
36: int width, height;
37:
38: PrankPanel() {
39: super();
40: setLayout(null);
41: addMouseMotionListener(this);
42: buttonX = 110;
43: buttonY = 110;
44: ok.setBounds(new Rectangle(buttonX, buttonY,
45: 70, 20));
46: add(ok);
47: }
48:
49: public void mouseMoved(MouseEvent event) {
50: mouseX = event.getX();
51: mouseY = event.getY();
52: width = (int)getSize().getWidth();
53: height = (int)getSize().getHeight();
54: if (Math.abs((mouseX + 35) - buttonX) < 50) {
55: buttonX = moveButton(mouseX, buttonX, width);
56: repaint();
57: }
58: if (Math.abs((mouseY + 10) - buttonY) < 50) {
59: buttonY = moveButton(mouseY, buttonY, height);
60: repaint();
61: }
62: }
63:
64: public void mouseDragged(MouseEvent event) {
65: // ignore this event
66: }
67:
68: private int moveButton(int mouseAt, int buttonAt, int border) {
69: if (buttonAt < mouseAt) {
70: buttonAt—;
71: } else {
72: buttonAt++;
73: }
74: if (buttonAt > (border - 20)) {
75: buttonAt = 10;
76: }
12
Search WWH ::




Custom Search