我在处理 child 的焦点时遇到问题Node。我有这个自定义布局,它的层次结构中有一堆节点,我想让它的一个孩子(特别是 a Pane)成为focusTraversable或可以获得鼠标按下的焦点(如按钮控件)。我真正想做的只是在专注时更改孩子的背景颜色,这是我的代码:
Pane pane = new Pane();
pane.getStyleClass().setAll("container");
pane.setFocusTraversable(true);
pane.setOnMousePressed(event -> {
if (!pane.isFocused() && pane.isFocusTraversable()) {
pane.requestFocus();
// Test if this node is currently focused
System.out.println(pane.isFocused());
}
});
CSS 更改-fx-background-color窗格的:
.container {
-fx-background-color: red;
}
.container:focused {
-fx-background-color: blue;
}
虽然看起来在使用TABkey遍历的时候节点是聚焦的,但是按下它的时候背景根本没有变化。那么,处理孩子注意力的正确方法是什么?