1

我在处理 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遍历的时候节点是聚焦的,但是按下它的时候背景根本没有变化。那么,处理孩子注意力的正确方法是什么?

4

0 回答 0