我正在使用 JSpinner
调整图形上的值,它具有撤消功能。我不想为每个微调器按钮单击事件创建一个撤消,而是在用户完成单击 JSpinner
按钮并将鼠标从微调器控件移开时创建一个撤消。
如果用户将鼠标指针移动得太快,普通的 JSpinner
mouseExited
会非常不稳定(如果检测到鼠标指针位于微调器按钮和 JSpinner
边框)。是否可以检测微调器按钮本身的 mouseExited?如果“FocusLost”是第一次撤消,则它不会启用撤消按钮,直到用户单击其他地方,他们可能会认为如果不这样做,他们的更改将无法撤消。
如果有任何替代方法,我们将不胜感激。提前致谢。
最佳答案
也许您可以使用 MouseListener
并处理 mouseEntered
和 mouseExited
。
如果用户使用键盘增加/减少微调器值,撤消逻辑会发生什么情况?
也许更好的解决方案是监听值的变化,然后启动一个 Timer
以在 1 或 2 秒内触发。当计时器触发时,您将进行处理。每次值更改时,您都会重置计时器。这些将对您定义的时间间隔内所做的所有更改进行分组。无论使用鼠标还是键盘,此解决方案都适用。
关于java - 是否可以检测到焦点丢失在 jSpinner 的按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100768/