【发布时间】:2014-08-02 18:40:04
【问题描述】:
昨天我试图制作一个可拖动的、未装饰的 JPanel,它运行良好,然后今天我加载了该项目,但它不再工作(我不知道为什么会发生这种情况,因为我确实正确保存了所有内容)。
任何帮助将不胜感激:)
这是源代码:
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class CustomBubble extends JFrame {
public int xMouse;
public int yMouse;
JPanel pnl = new JPanel();
public CustomBubble()
{
super("CustomBubble");
setSize(150,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(true);
setLocationByPlatform(true);
setAlwaysOnTop(true);
setVisible(true);
pnl.addMouseMotionListener(
new MouseAdapter()
{
public void mouseDragged(MouseEvent e) {
int x = e.getXOnScreen();
int y = e.getYOnScreen();
setLocation(x - xMouse, y - yMouse);
}
});
pnl.addMouseListener(
new MouseAdapter() {
public void mousePressed(MouseEvent me) {
xMouse = me.getX();
yMouse = me.getY();
}
});
add(pnl);
}
public static void main(String[] args)
{
CustomBubble gui = new CustomBubble();
}
}
【问题讨论】:
-
这是程序中的实际行吗?因为它不会编译:
setDefaultCloseOperation(EXIT_ON_CLOSE); -
是的,就在里面。它为我编译。我唯一的问题是,当面板出现时,我无法再在屏幕上单击并拖动它。
-
这可能无关紧要,但如果你把它改成
JFrame.EXIT_ON_CLOSE呢? -
我将其更改为 JFrame.EXIT_ON_CLOSE 并没有任何区别。
标签: java swing user-interface jpanel listener