用于用户调整拖动JDialog 边框的 MousePressed / MouseReleased 事件

问题描述

我想知道用户何时调整了我的 JDialog 的大小,因为我想让它在那之后调整到特定的大小步长。而且我需要将其与由源自对话框中元素的程序化调整大小引起的调整大小事件区分开来(设置标志很容易)。

我可以使用对话框 rootPane 中的 ComponentResized 事件和计时器来避免被此类事件淹没(如 Java ComponentResized - Detect whether user resized the window or it was resized programatically 中建议的那样)。 尽管如此,这仍然很混乱,并且通常会导致窗口比我的对话框大,并且对话框内面板旁边的黑色区域。或者我必须有一个每隔 100 毫秒执行一次 setVisible(true) 的计时器。 (不,pack() 不足以解决这种情况,它需要 setVisible(true)。)

我拼命地尝试在用户拖动对话框窗口框架后释放鼠标按钮时获取一个事件 - 这将使我有机会做出正确的反应。

Listen to JFrame resize events as the user drags their mouse? 似乎对我不起作用。当用户在对话框的边框上按下鼠标或释放鼠标时,我没有收到任何事件。我确实在任何面板等上获得了所有鼠标事件,但边框似乎遥不可及。

我怎样才能得到这样的事件? 或者,我是否可以查询鼠标按钮状态以避免在用户仍在拖动时执行操作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)