📜  JavaFX |拆分窗格类(1)

📅  最后修改于: 2023-12-03 15:16:03.471000             🧑  作者: Mango

JavaFX | 拆分窗格类

在JavaFX中,拆分窗格(SplitPane)是一种容器,它可以将场景分割成多个面板,每个面板可以拖动调整大小。拆分窗格类提供了一种方便的方式来布局用户界面,使其更具交互性。

用法

创建一个拆分窗格需要两个子节点,可以通过以下代码创建:

SplitPane splitPane = new SplitPane();
Node node1 = new Button("Node 1");
Node node2 = new Button("Node 2");

splitPane.getItems().addAll(node1, node2);

拆分窗格的默认方向是水平的,就是将场景分割成左右两边。如果要垂直分割,可以设置orientation属性:

splitPane.setOrientation(Orientation.VERTICAL);

可以设置拆分窗格中子节点的默认大小,以及子节点之间的分界线位置:

splitPane.setDividerPositions(0.3, 0.7);

这将使第一个子节点占拆分窗格的30%,第二个子节点占70%。

事件

拆分窗格可以发出DIVIDER_POSITION_CHANGINGDIVIDER_POSITION_CHANGED事件,可以在代码中进行监听。例如:

splitPane.getDividers().get(0).positionProperty().addListener((obs, oldVal, newVal) -> {
    System.out.println("Divider position changed to " + newVal.doubleValue());
});
样式

拆分窗格可以自定义样式,来满足不同的设计需求。以下是一些常用的样式类:

  • .split-pane: 拆分窗格基本样式。
  • .split-pane:horizontal: 水平方向的拆分窗格。
  • .split-pane:vertical: 垂直方向的拆分窗格。
  • .split-pane *: 拆分窗格中的所有子节点。
总结

拆分窗格类提供了一种方便的方式来布局用户界面,使其更具交互性。通过设置子节点的大小和分界线位置,可以实现不同的布局效果。同时,可以监听事件并自定义样式,以满足不同的设计需求。