Java 是否将按钮替换为填充圆?

Java 是否将按钮替换为填充圆?,java,swing,mouselistener,Java,Swing,Mouselistener,如何将代码上显示的按钮替换为填充的圆圈。圆圈(如红色)必须与按钮一样远离光标。 这是实现这类任务的另一种可能方式吗 import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.sw

如何将代码上显示的按钮替换为填充的圆圈。圆圈(如红色)必须与按钮一样远离光标。 这是实现这类任务的另一种可能方式吗

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class NewSwingTemplate {
    private Random d = new Random();

    public NewSwingTemplate() {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.add(createButton());
        frame.add(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    private JButton createButton() {
        final JButton button = new JButton("Button");
        button.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                int a = d.nextInt(200);
                int b = d.nextInt(200);
                button.setLocation(a, b);
            }
        });
        return button;
    }
    

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new NewSwingTemplate();
            }
        });
    }
}

您可以自定义绘制
形状
。签出:。它显示了如何绘制和拖动任何
形状
。您只需要替换“拖动”逻辑并处理
mouseMoved
事件。首先需要检查
形状
是否包含鼠标点。如果是这样,那么你可以将形状变换到另一个位置。或者你可以实际创建一个。那么你的问题解决了吗?你不断地问问题,但如果问题解决了,你永远不会接受答案或评论。那么你的问题解决了吗?你不断地问问题,但如果建议有助于解决问题,你永远不会接受答案或评论。