我有一个多选JavaSwing应用程序,它有复选框和下一个/上一个按钮。我对它进行了修改,因此当它启动时焦点现在在Next按钮上,允许用户按Enter / Return进入下一个屏幕。
现在的问题是当用户选择一个复选框时,“下一步”按钮会丢失其键盘焦点和灰色轮廓。 Coder添加了一个hack,因此每次选中一个复选框时按钮都会重新获得焦点和灰色轮廓,但每次鼠标单击时按钮都会闪烁!某些屏幕有4个正确的复选框,因此按钮闪烁4次。
我认为这是不可接受的行为,但他说,"预期的行为是当你选择任何控制时,显然它会关注那个元素。你想要覆盖Java Inbuilt Functionality,这是不可能的。"
这只是错了。他是对的吗?是否有任何我可以指向他的来源,这将使他能够专注于鼠标点击的复选框,同时在按钮上保持键盘焦点?
非常感谢提前。
答案 0 :(得分:0)
你的程序员可能只应在复选框上设置setFocusable(false)。
答案 1 :(得分:0)
您不应该使用键盘焦点 - 这只会激怒尝试仅使用击键导航UI的用户。
您正在寻找的是JFrame
和JDialog
rootpane上提供的“默认按钮”:
public JFrame makeFrame() {
JFrame f = new JFrame(...);
JButton next = new JButton("next");
f.getRootPane().setDefaultButton(next);
return f;
}
public JDialog makeFrame() {
JDialog d = new JDialog(...);
JButton next = new JButton("next");
d.getRootPane().setDefaultButton(next);
return d;
}