我有一个特殊的需求:
我有一个创建新对象的模态对话框,其中包含许多字段和“确定”和“取消”按钮。我希望“确定”按钮获得焦点,以便用户可以简单地调用对话框并按Enter键使用默认值创建新对象。我尝试调用
好吧,那么我就为对话框中的每个字段创建一个
如何在不重新组织元素的情况下实现对我的对话框的“Enter to OK”行为?
我有一个创建新对象的模态对话框,其中包含许多字段和“确定”和“取消”按钮。我希望“确定”按钮获得焦点,以便用户可以简单地调用对话框并按Enter键使用默认值创建新对象。我尝试调用
requestFocusInWindow()
,但直到窗口实际显示出来它才奏效。我无法在窗口显示后调用它,因为对话框是模态的。而且对话框类中没有像setInitialFocusedComponent()
这样的方法。好吧,那么我就为对话框中的每个字段创建一个
KeyListener
(只有3个,没什么大不了的),如果用户在这些字段上按Enter键,它将手动按下“确定”按钮。现在的问题是第一个字段(也就是聚焦的字段)是一个JSpinner
,它会消耗自己的KeyEvents
。因此,按Enter键没有任何反应。如何在不重新组织元素的情况下实现对我的对话框的“Enter to OK”行为?