java jframe 高度_java – 实时监听JFrame的高度和宽度

我有一种情况,我希望能够知道JFrame的高度和宽度,因为用户拖动鼠标来调整框架的大小.

我的问题是:我已经使我的“HSFrame”类扩展了JFrame并实现了ActionListener,MouseMotionListener(但是ActionListener与此问题无关).这个问题与MouseMotionListener有关.

我有一个名为“CanvasPanel”的独立类,它扩展了JPanel – 这是我使用图形对象通过绘制字符串来更新实时信息的地方.

public void mouseMoved(MouseEvent e)

{

}

public void mouseDragged(MouseEvent e)

{

validate();

canvas.repaint();

}

这是我的“HSFrame”类的代码摘录(扩展JFrame,实现MouseMotionListener).在这个代码示例中,“canvas”是一个CanvasPanel对象,每当调用MouseDragged时,我都会调用它的repaint()方法.

我选择使用MouseMotionListener,因为这(假设)会给我实时更新,而不是ComponentListener的componentResized()方法(与MouseReleased相关联).

当我从左上角调整框架大小时,一切都完美地更新了100%.高度,宽度,X和Y值都完美重绘.

但是当我从右下角调整大小时,它不会实时更新.我不了解你,但我更喜欢从右下角调整大小.

在“CanvasPanel”类本身,我扩展了ComponentListener并在那里添加了一个“HSFrame”对象的监听器 – 它不会实时更新,这很好,但它确实在重放鼠标后重新绘制高度和宽度,无论HSFrame的大小调整了哪个角落.

主要问题:

是否有可能让MouseMostionListener知道我正在从右下角调整JFrame的大小?当我通过单击并拖动标题栏来移动框架时它会听到,当我从左上角调整大小(它也与标题栏交互)时它会听到.只是当JFrame的其他边界发生任何事情时,它才会听到.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值