[英]Mouse Event to move frame not working
我有以下代碼:
panel.addMouseListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) {
frame.setLocation(e.getXOnScreen(), e.getYOnScreen());
}
});
panel
是一個JPanel
,並且所有導入都已包括在內。 現在,當我拖動panel
, frame
不會移動一點。 為什么會這樣,我應該如何解決呢?
編輯 : 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.