gpt4 book ai didi

java - FocusLost 在 menuaction 之后调用

转载 作者:行者123 更新时间:2023-11-29 06:06:37 26 4
gpt4 key购买 nike

我有一个带有快捷键的 MenuItem,用于临时保存 JTextFied 的数据并打印它

保存功能在 JTextField 的 FocusLost 事件上调用,打印通过 MenuItems actionListener 调用,并在我单击 MenuItem 以及按下菜单项的快捷键(例如:f1)时触发

问题是,当我直接按 f1(菜单项的快捷方式)时,Textfied 的 focusLost 事件仅在菜单项执行其操作后才会触发,而当我转到菜单并按下时,focuslost 首先被触发其次是菜单的操作

有没有办法强制 Focuslost,这样即使使用快捷键,focusLost 事件也会先被触发

尝试使用 requesfocusinWindow、setText(在其他演示文本字段上执行只是为了强制失去焦点)

最佳答案

1) 我认为这在编程语言中是不可能的,更多关于 AWT Focus Subsystem 的理论和 How to Use the Focus Subsystem ,

2) 你必须将这个 Save Processes 重定向到 Backgroung Task,在此之前你可以检查 JMenu 和它的 JMenuItem 是否被选中,因为此检查仅使用 ButtonModel,否则不要这样做,因为您的 GUI 必须等待此过程

3) 另一种选择是将 JComponents 中的周期性基值保存到某些 Array 中,在那里您可以检查值是否被更改,必须检查所有更改/从后台任务中保存,对 Swing GUI 没有任何影响

4) 如何创建像 Timer 这样的东西的最简单方法是将一些逻辑包装到 Runnable#Thread 中,由 Thread.sleep(int) 延迟但只在内部Runnable#Thread

关于java - FocusLost 在 menuaction 之后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com