java - 移动框架的鼠标事件不起作用

标签 java swing mouseevent mouse

我有以下代码:

panel.addMouseListener(new MouseAdapter() {
    public void mouseDragged(MouseEvent e) {
        frame.setLocation(e.getXOnScreen(), e.getYOnScreen());
    }
});

panel 是一个JPanel,并且所有导入都已包含在内。现在,当我拖动面板时,框架不会移动一点点。这是为什么?我应该如何解决它?

编辑:框架未装饰。
编辑:mouseDragged没有被触发 - 这就是需要解决的问题! 编辑:代码!!!!!!

package user_interface;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame {
    public Test() {
        this.setUndecorated(true);
        this.setLayout(new GridLayout(3, 3, 3, 3));
        for (int i = 0; i < 4; i++) {
            this.add(new JPanel());
        }
        JPanel panel = new JPanel();
        panel.setBackground(new Color(0));
        panel.setToolTipText("Drag to move frame");
        this.addMouseListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                Test.this.setLocation(e.getXOnScreen(), e.getYOnScreen());
                System.out.println(e);
            }
        });
        this.add(panel);
        for (int i = 0; i < 4; i++) {
            this.add(new JPanel());
        }
    }

    public static void main(String... args) {
        Test test = new Test();
        test.setSize(750, 500);
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 3
        test.setVisible(true);
    }
}

最佳答案

为此目的添加 MouseMotionListener。

JPanel panel = new JPanel();
panel.setBackground(new Color(0));
panel.setToolTipText("Drag to move frame");

panel.addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e) {
       super.mouseDragged(e);
       Test.this.setLocation(e.getXOnScreen(), e.getYOnScreen());
       System.out.println(e);
    }
});

this.setContentPane(panel);

关于java - 移动框架的鼠标事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365709/

相关文章:

javascript - 随着鼠标位置改变不透明度

java - JMS - 即使与远程提供程序的连接正常,也无法创建 session 工厂

java如何传递其中通用元素的列表

java - 从在 Tomcat 上运行的应用程序 (Java) 访问 Outlook2003(作为服务启动)

java.lang.NumberFormatException : empty string - OBJ Model Loader

java - 将选项卡替换为 JTabbedPane 中的图标

javascript - 选择 div 的特定区域

java - 游戏循环完全卡住了我的程序

java - 如何突出显示 JTextArea 中的单个单词

javascript - jQuery 鼠标点击计数器