簡體   English   中英

鼠標事件移動框架不起作用

[英]Mouse Event to move frame not working

我有以下代碼:

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

panel是一個JPanel ,並且所有導入都已包括在內。 現在,當我拖動panelframe不會移動一點。 為什么會這樣,我應該如何解決呢?

編輯frame未裝飾。
編輯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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM