Javafx 使用拆分窗格构建边框窗格并最小化要隐藏节点的区域
我试图构建一个带有拆分窗格的边界窗格,通过拖动鼠标获得一个具有可调整大小区域的边界窗格。我已经写了一些代码,这是工作。但是我不能隐藏分割窗格的区域,如果其中有任何节点 首先,我已经建立了这个阶段,它的工作Javafx 使用拆分窗格构建边框窗格并最小化要隐藏节点的区域,javafx,splitpane,Javafx,Splitpane,我试图构建一个带有拆分窗格的边界窗格,通过拖动鼠标获得一个具有可调整大小区域的边界窗格。我已经写了一些代码,这是工作。但是我不能隐藏分割窗格的区域,如果其中有任何节点 首先,我已经建立了这个阶段,它的工作 public class Example extends Application { StackPane gui; SplitPane splitVertical; SplitPane splitHorizontal; StackPane top;
public class Example extends Application {
StackPane gui;
SplitPane splitVertical;
SplitPane splitHorizontal;
StackPane top;
StackPane left;
StackPane center;
StackPane right;
StackPane bottom;
@Override
public void start(Stage stage) throws Exception {
splitVertical = new SplitPane();
splitVertical.setOrientation(Orientation.VERTICAL);
splitVertical.setDividerPosition(0, 0.25);
splitVertical.setDividerPosition(1, 0.75);
splitVertical.setDividerPosition(2, 1.00);
splitHorizontal = new SplitPane();
splitHorizontal.setOrientation(Orientation.HORIZONTAL);
splitHorizontal.setDividerPosition(0, 0.25);
splitHorizontal.setDividerPosition(1, 0.75);
splitHorizontal.setDividerPosition(2, 1.00);
top = new StackPane();
left = new StackPane();
center = new StackPane();
right = new StackPane();
bottom = new StackPane();
splitVertical.getItems().add(top);
splitVertical.getItems().add(splitHorizontal);
splitHorizontal.getItems().add(left);
splitHorizontal.getItems().add(center);
splitHorizontal.getItems().add(right);
splitVertical.getItems().add(bottom);
gui = new StackPane(splitVertical);
Scene scene = new Scene(gui, 400, 300);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
这段代码运行良好。我有一个包含所有区域的“边界窗格”
我可以根据需要调整区域大小并完全隐藏它们,如果我愿意的话
但是如果区域内有任何节点,我无法隐藏区域。我可以最小化它们,直到节点被接受为止。这里有一个例子
public class Example extends Application {
StackPane gui;
SplitPane splitVertical;
SplitPane splitHorizontal;
StackPane top;
StackPane left;
StackPane center;
StackPane right;
StackPane bottom;
Button buttonTop;
Button buttonLeft;
Button buttonCenter;
Button buttonRight;
Button buttonBottom;
@Override
public void start(Stage stage) throws Exception {
splitVertical = new SplitPane();
splitVertical.setOrientation(Orientation.VERTICAL);
splitVertical.setDividerPosition(0, 0.25);
splitVertical.setDividerPosition(1, 0.75);
splitVertical.setDividerPosition(2, 1.00);
splitHorizontal = new SplitPane();
splitHorizontal.setOrientation(Orientation.HORIZONTAL);
splitHorizontal.setDividerPosition(0, 0.25);
splitHorizontal.setDividerPosition(1, 0.75);
splitHorizontal.setDividerPosition(2, 1.00);
buttonTop = new Button("Top");
buttonLeft = new Button("Left");
buttonCenter = new Button("Center");
buttonRight = new Button("Right");
buttonBottom = new Button("Bottom");
top = new StackPane(buttonTop);
left = new StackPane(buttonLeft);
center = new StackPane(buttonCenter);
right = new StackPane(buttonRight);
bottom = new StackPane(buttonBottom);
splitVertical.getItems().add(top);
splitVertical.getItems().add(splitHorizontal);
splitHorizontal.getItems().add(left);
splitHorizontal.getItems().add(center);
splitHorizontal.getItems().add(right);
splitVertical.getItems().add(bottom);
gui = new StackPane(splitVertical);
Scene scene = new Scene(gui, 400, 300);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我有一个边框窗格
但我无法完全隐藏这些区域
是否可以更改区域的大小,直到它们完全隐藏?我找到了解决方案。childnode的minSize已设置为0。然后一切正常
buttonTop.setMinSize(0, 0);
buttonLeft.setMinSize(0, 0);
buttonCenter.setMinSize(0, 0);
buttonRight.setMinSize(0, 0);
buttonBottom.setMinSize(0, 0);