一些背景知识 我有一个回合制游戏,你可以在单独的窗口中玩几个并发游戏。每个窗口/游戏都有自己的聊天记录,还有一种游戏动作面板,轮到你轮到你了。
问题: 当你轮到你正在玩的任何一个游戏时,游戏窗口会偷走焦点,这是设计但是如果你参与任何一个游戏的聊天都很烦人,因为当焦点丢失时,聊天将不会更长时间接收你的键盘笔画。
我想要的是什么: 将键盘事件分派给不再是焦点所有者的JTextField(以及与当前焦点所有者不同的窗口/ JFrame)的某种方式。有办法做到这一点吗?怎么样?
计划b将是在聊天中设置某种计时器,并让窗口拒绝放弃焦点,直到聊天中的最后一次击键后经过了x个时间量,但是可能无法停止焦距切换,因为您的行动时间已经有限。
答案 0 :(得分:0)
当聊天文本字段中的文字通过调用时,您可以将当前聊天窗口的alwaysOnTop
设置为true:
java.awt.Window
public final void setAlwaysOnTop(boolean alwaysOnTop)
throws SecurityException
当用户按Enter键或点击发送按钮时,重置alwaysOnTop
,以便其他窗口可以加强焦点。
答案 1 :(得分:0)