首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在无事件的情况下获取鼠标左键状态

在无事件的情况下获取鼠标左键状态
EN

Stack Overflow用户
提问于 2017-09-04 14:05:01
回答 1查看 57关注 0票数 0

当我将对话框移动到不同的屏幕时,我需要缩放它们。由于缩放所有组件的开销很大,所以我只想在对话框移动到新位置时执行一次。

因此,我使用了一个计时器,它会在每个传入的componentMoved事件后重新启动,以了解对话框何时停止移动。这很有效,只要在停止对话框时松开鼠标即可。

如果对话框停止移动,而鼠标仍处于按下状态,则缩放起作用。但是,一旦我释放鼠标,我的L&F引擎就会将对话框大小调整为以前的大小,这非常不方便。

我尝试了pack(),手动设置大小(我知道,这是很糟糕的做法),我在缩放之前尝试了setVisible(false),之后尝试了setVisible(true),但只要按下鼠标,我的L&F引擎就会将对话框大小调整为以前的大小。

遗憾的是,所有与titleBar相关的MouseEvents都被引擎吞噬了,所以我不能简单地使用mouseReleased事件来触发缩放。

这就是为什么我需要找出鼠标是否在不使用事件的情况下仍然被按下。有什么办法吗?JNI以某种方式?

我不能展示一个例子,因为没有L&F引擎,它工作得很好。不使用它也不是一种选择。

EN

Stack Overflow用户

发布于 2017-09-04 14:34:56

我认为,你应该使用ComponentListener。当窗口大小更改时,布局管理器必须触发重新布局,并且必须更改组件大小。

此外,出于调试目的,您可以使用AWTEventListener来获取在您的UI中抛出的所有事件。

代码语言:javascript
运行
复制
Toolkit.getDefaultToolkit().addAWTEventListener(...);

手动设置大小(我知道,这是一种糟糕的做法)

这不是一种糟糕的做法。尤其是当您想要恢复以前的窗口大小时。pack()只是一种首选方式。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46031141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档