0

我有一个简单的 Java 代码,我将 MouseMotionListener 附加到 JButton 并在每次拖动鼠标时刷新按钮的位置,但是,我得到了奇怪的位置。有更好的方法吗?我一直很不幸找到任何解决方案。

public static void main(String[] args) {
    JFrame frame = new JFrame("Janela 1");
    JPanel myPainel = new JPanel();
    myPainel.setLayout(null);

    final JButton btn = new JButton("First button");
    btn.setBounds(0,0,100,50);
    //btn.setLocation(50, 50);
    btn.addMouseMotionListener(new MouseMotionListener() {
        @Override
        public void mouseDragged(MouseEvent e) {
            Point p = e.getPoint();
            btn.setBounds((int)p.getX(), (int)p.getY(), 100, 50);
        }
        @Override
        public void mouseMoved(MouseEvent e) {

        }
    });
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(myPainel);
    myPainel.add(btn);
    frame.setSize(600, 400);
    frame.setVisible(true);
}

编辑:我可以用这段代码改进运动:

public void mouseDragged(MouseEvent e) {
    Point p = MouseInfo.getPointerInfo().getLocation();
    btn.setBounds((int)p.getX() - 50, (int)p.getY() - 50, 100, 50);
}
4

0 回答 0