慕無忌1623718
2023-06-28 15:21:59
我一直在嘗試完成如何在使用鼠標拖動 jframe 時移動它。但我找不到解決辦法。我嘗試在 Jframe 上實現偵聽器,但它沒有按照我預期的方式工作。JFrame jframe = new JFrame();jframe.setSize(500,500);jframe.setLocation(400, 100);jframe.setVisible(true);jframe.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } });
1 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
您可以使用 MouseMotionListener。使用 mouseMoved 事件方法移動鼠標時獲取鼠標的位置,并將其與拖動事件一起使用以相應地定位框架。:
jframe.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
xDrag = e.getX();
yDrag = e.getY();
JFrame sFrame = (JFrame) e.getSource();
sFrame.setLocation(sFrame.getLocation().x+xDrag-xPress,
sFrame.getLocation().y+yDrag-yPress);
}
@Override
public void mouseMoved(MouseEvent e) {
xPress = e.getX();
yPress = e.getY();
}
});
在類中聲明變量 xDrag、yDrag、xPress、yPress。我希望這有幫助。
添加回答
舉報
0/150
提交
取消