이것은 Oracle Layout Tutorial을 기반으로합니다. 여기에는 두 개의 버튼이있는 HBox
이 있습니다.JavaFX는 노드 표시 및 숨기기
두 개의 노드 (nodeCurrent 및 nodeProjected)를 추가했지만 기본 레이아웃에서 nodeCurrent/nodeProjected를 표시하거나 숨기려면 로직을 구현할 수 없습니다. 예 :
buttonCurrent.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
nodeProjected.setVisible(false);
nodeCurrent.setVisible(true);
}
또한`setManaged '로 시도했습니다. 그러나, 내가 시도해도 올바르게 작동하지 않습니다. 그렇다면 JavaFX의 노드에 대해 show/hide 토글을 구현하는 적절한 방법은 무엇입니까? 아니면 JavaFX에서 창을 표시하거나 숨길 수있는 현명한 방법이 있습니까?
업데이트 비트를 명확히하기 위해.
dataform = addDataForm();
root.add(dataform, 0, 1);
search = addSearchForm();
search.setVisible(false);
root.add(search, 0, 1)
가시성을 전환해야 두 개의 버튼이 있습니다 : 루트에
public GridPane root;
public GridPane dataform;
public GridPane search;
그리고 추가 :이 공공으로 정의된다
btnSearch.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
dataform.setVisible(false);
search.setVisible(true);
System.out.println("Search!");
}
});
그러나 그들에 클릭 한 후, 내가 얻을 :
"올바르게 작동하지 않습니다." 그럼 실제로 무엇을합니까? –
nodeProjected 및 nodeCurrent를 장면에 어떻게 추가합니까? –
노드가 보이지 않아야하고'HBox' 자식을 레이아웃하기 위해 무시되는 경우'visible' 및'managed' 속성을 모두 false로 설정해야합니다. 그러나 당신은 제대로 예상 된 동작을 설명하지 ... – fabian