如何移动具有自定义标题栏的 JFrame
?
我删除了默认标题栏并进行了自己的设计。这是它的样子:
我想知道当光标仅放在标题栏上而不是整个框架上时如何拖动 JFrame
。我已经搜索过了,我已经看过很多样本,但我还是不明白。你们有我能理解的简单代码吗?
我还没有启动代码,因为我不知道如何启动它。我所知道的是,它是关于 mouseDragged
或 MouseMotionListener
的。
最佳答案
我实现了以下内容:
public class DragFrame extends JFrame {
int mpX, mpY;
public DragFrame() {
addMouseListener( new MouseAdapter() {
@Override
public void mousePressed( MouseEvent e ) {
mpX = e.getX();
mpY = e.getY();
}
} );
addMouseMotionListener( new MouseMotionAdapter() {
@Override
public void mouseDragged( MouseEvent e ) {
setLocation(
getLocation().x + e.getX() - mpX,
getLocation().y + e.getY() - mpY );
}
} );
}
}
感谢 @peeskillet 提供指向 Drag and Resize undecorated JFrame 的关键链接灵感来自将鼠标位置保存在 mousePressed(...)
上。
关于java - 移动带有自定义标题栏的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26318474/