Java中如何写代码实现无标题无边框的窗体能够用鼠标拖动改变窗口大小

本文提供了一个使用Java Swing实现窗口拖拽功能的示例代码。通过监听鼠标事件,允许用户拖动未装饰的JFrame窗口。代码展示了如何在按下鼠标按钮时记录起始位置,并在拖动过程中更新窗口的位置。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class DragFrame extends JFrame {
private boolean startDrag = false;
private Point p = null;

public static void main(String[] args) {
DragFrame df = new DragFrame();
df.setUndecorated(true);
df.setSize(400, 400);
df.setVisible(true);
}

public DragFrame() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
startDrag = true;
p = e.getPoint();
}

public void mouseReleased(MouseEvent e) {
startDrag = false;
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p1 = e.getPoint();
Point p2 = getLocation(null);
p2.x += p1.x - p.x;
p2.y += p1.y - p.y;
setLocation(p2);
}
});
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值