java - 是否可以检测到焦点丢失在 jSpinner 的按钮上

标签 java swing jspinner

我正在使用 JSpinner 调整图形上的值,它具有撤消功能。我不想为每个微调器按钮单击事件创建一个撤消,而是在用户完成单击 JSpinner 按钮并将鼠标从微调器控件移开时创建一个撤消。

如果用户将鼠标指针移动得太快,普通的 JSpinner mouseExited 会非常不稳定(如果检测到鼠标指针位于微调器按钮和 JSpinner 边框)。是否可以检测微调器按钮本身的 mouseExited?如果“FocusLost”是第一次撤消,则它不会启用撤消按钮,直到用户单击其他地方,他们可能会认为如果不这样做,他们的更改将无法撤消。

如果有任何替代方法,我们将不胜感激。提前致谢。

最佳答案

也许您可以使用 MouseListener 并处理 mouseEnteredmouseExited

如果用户使用键盘增加/减少微调器值,撤消逻辑会发生什么情况?

也许更好的解决方案是监听值的变化,然后启动一个 Timer 以在 1 或 2 秒内触发。当计时器触发时,您将进行处理。每次值更改时,您都会重置计时器。这些将对您定义的时间间隔内所做的所有更改进行分组。无论使用鼠标还是键盘,此解决方案都适用。

关于java - 是否可以检测到焦点丢失在 jSpinner 的按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100768/

相关文章:

java - Junit无法读取更新后的代码

java - 如何在java中减小多部分文件的大小

c# - C# 中的验证框架?

java - 具有自定义元素的 JList

java - JSplitPanel(或 JTabbedPane)有什么问题?

java - 如何将 JSpinner 的文本居中

java - 代码方面的依赖和关联

java - 使用 Java 2D 和 Swing 绘制图形

java - 创建一个类似于 Microsoft Word 中的页边距编辑器组件

java - 在 swings 中设置 jspinner 的时间格式