在一行中,我们显示文本字段以输入搜索文本以及搜索图像作为按钮字段。在该行的下方,我们显示名称列表。
这里的问题是,在键盘箭头键向下移动期间,图像按钮字段无法获得焦点。但是在向上移动的过程中,当我们单击向左箭头时,它会获得焦点。但对于向下运动并不是获得向上箭头运动的焦点。
用于输入搜索文本的文本字段:
final TextField tfTeamSearch = new TextField();
tfTeamSearch.setFocus(true);
图像按钮字段:
btnSearchImage = new Button();
btnSearchImage.setIcon(imgSearchUnFocus);
btnSearchImage.getStyle().setBgTransparency(0);
btnSearchImage.getStyle().setBorder(null);
btnSearchImage.getStyle().setFont(font);
btnSearchImage.getSelectedStyle().setFont(font);
btnSearchImage.getPressedStyle().setFont(font);
btnSearchImage.getUnselectedStyle().setFont(font);
btnSearchImage.setFocusable(true);
你能帮我如何使用箭头键设置向上和向下运动的焦点吗?
首先:如果您希望将焦点设置为TextField
,则应使用tfTeamSearch.requestFocus()
而不是tfTeamSearch.setFocus(true)
。 tfTeamSearch.setFocus(true)
仅更改样式。
其次:您可以使用Component
方法setNextFocusDown
、setNextFocusUp
、setNextFocusLeft
或setNextFocusRight
来设置焦点下的下一个组件。