📜  JavaFX |拆分窗格类

📅  最后修改于: 2022-05-13 01:54:48.581000             🧑  作者: Mango

JavaFX |拆分窗格类

SplitPane 类是 JavaFX 的一部分。 SplitPane 类是一个控件,它包含由分隔线分隔的两个或多个边。用户可以拖动边来为其中一侧提供更多空间,从而导致另一侧缩小等量。 SplitPane 类继承Control类。

类的构造函数:

  • SplitPane() :创建一个新的 SplitPane。
  • SplitPane(Node... n) : 创建一个具有指定节点的 SplitPane。

常用方法:

MethodExplanation
getItems()Returns the items of the split pane.
getOrientation()Returns the orientation of split pane.
setDividerPosition(int dividerIndex, double position)Sets the position of divider at specified index.
setDividerPositions(double… p)Sets the position of dividers.
setOrientation(Orientation o)Sets the orienattion of splitpane.

下面的程序说明了 SplitPane 类的使用:

  1. 用于创建拆分窗格并为其添加标签的Java程序:
    • 在这个程序中,我们将创建一个 SplitPane 名称split_pane
    • 使用getItems().add()函数创建标签并将其添加到拆分窗格。
    • split_pane添加到场景中,并将场景添加到舞台。
    • 调用show()函数以显示最终结果。
    // Java program to create a split pane
    // and add labels to it
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.scene.layout.*;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.geometry.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
    import javafx.scene.paint.*;
    import javafx.scene.*;
    import java.io.*;
    import javafx.scene.image.*;
      
    public class SplitPane_1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Split Pane");
      
                // create a splitpane
                SplitPane split_pane = new SplitPane();
      
                // create labels and add it to splitPane
                for (int i = 1; i < 5; i++) {
      
                    split_pane.getItems().add(new Label("\tLabel no " 
                                                        + i + "\t"));
                }
      
                // create a scene
                Scene scene = new Scene(split_pane, 500, 300);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }
    

    输出:

  2. 用于创建拆分窗格的Java程序设置其方向并为其添加标签:
    • 在这个程序中,我们将创建一个 SplitPane 名称split_pane
    • 使用getItems().add()函数创建标签并将其添加到拆分窗格。
    • split_pane添加到场景中,并将场景添加到舞台。
    • 使用setOrientation()函数设置split_pane的方向。
    • 调用show()函数以显示最终结果。
    // Java program to create a split pane, set
    // its orientation and add labels to it
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.scene.layout.*;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.geometry.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
    import javafx.scene.paint.*;
    import javafx.scene.*;
    import java.io.*;
    import javafx.scene.image.*;
      
    public class SplitPane_2 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Split Pane");
      
                // create a splitpane
                SplitPane split_pane = new SplitPane();
      
                // create labels and add it to splitPane
                for (int i = 1; i < 5; i++) {
      
                    // create a label
                    Label label = new Label("\tLabel no " + i + "\t");
      
                    // set preferred height
                    label.setPrefHeight(50);
      
                    split_pane.getItems().add(label);
                }
      
                // set Orientation of splitpane
                split_pane.setOrientation(Orientation.VERTICAL);
      
                // create a scene
                Scene scene = new Scene(split_pane, 500, 300);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }
    

    输出:

注意:以上程序可能无法在在线 IDE 中运行,请使用离线编译器。

参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/SplitPane.html