Naughty button

/*This is a simple application that is used to display a simple panel.
Have fun.*/

package coursa;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Mouse extends JFrame implements ActionListener {
    public Mouse() {
        super("Message");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(420, 220);
        BorderLayout border = new BorderLayout();
        setLayout(border);
        JLabel msg = new JLabel("Click Yes to close program.");
        add(BorderLayout.NORTH, msg);
        PrankPanel prank = new PrankPanel();
        prank.Yes.addActionListener(this);
        add(BorderLayout.CENTER, prank);
        setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        System.exit(0);
    }

    @Override
    public Insets getInsets() {
        return new Insets(40, 10, 10, 10);
    }

    private static void setLookAndFeel() {
        try {
            UIManager.setLookAndFeel(
                "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
            );
        } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | UnsupportedLookAndFeelException exc) {
            System.err.println("Couldn't use the system "
                + "look and feel: " + exc);
        }
    }

    public static void main(String[] arguments) {
        Mouse.setLookAndFeel();
        new Mouse();
    }
}

class PrankPanel extends JPanel implements MouseMotionListener {
    JButton Yes = new JButton("Yes");
    int buttonX, buttonY, mouseX, mouseY;
    int width, height;

    PrankPanel() {
        super();
        setLayout(null);//So that it does not use the default order layout.
        addMouseMotionListener(this);
        buttonX = 110;
        buttonY = 110;
        Yes.setBounds(new Rectangle(buttonX, buttonY,
            70, 20));//Place the button on the panel.
        add(Yes);
    }

    @Override
    public void mouseMoved(MouseEvent event) {
        mouseX = event.getX();
        mouseY = event.getY();
        width = (int) getSize().getWidth();
        height = (int) getSize().getHeight();
        if (Math.abs((mouseX + 35) - buttonX) < 50) {
            buttonX = moveButton(mouseX, buttonX, width);
            repaint();
        }
        if (Math.abs((mouseY + 10) - buttonY) < 50) {
            buttonY = moveButton(mouseY, buttonY, height);
            repaint();
        }
    }

    @Override
    public void mouseDragged(MouseEvent event) {
        // ignore this event
    }

    private int moveButton(int mouseAt, int buttonAt, int bord) {
        if (buttonAt < mouseAt) {
            buttonAt--;
        } else {
            buttonAt++;
        }
        if (buttonAt > (bord - 20)) {
            buttonAt = 10;
        }
        if (buttonAt < 0) {
            buttonAt = bord - 80;
        }
        return buttonAt;
    }

    @Override
    public void paintComponent(Graphics comp) {
        super.paintComponent(comp);
        Yes.setBounds(buttonX, buttonY, 70, 20);//The button is displayed at the current position.
    }
}

Comments