📜  JavaFX |窗格类

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

JavaFX |窗格类

窗格类是 JavaFX 的一部分。窗格类充当所有布局窗格的基类。基本上,它满足了将子类列表公开的需要,以便子类的用户可以自由添加/删除子类。 Pane 类继承Region类。如果应用程序需要子项在父项中保持对齐,则必须使用StackPane 。无论孩子的可见属性值如何,此类都会调整每个托管孩子的大小。

类的构造函数:

  1. Pane() :创建一个新的 Pane 对象。
  2. Pane(Node... c) : 使用指定节点创建一个新的 Pane 布局。

常用方法:

MethodExplanation
getChildren()Returns the childrens of the pane.
setLayoutX(double v)Sets the value of the property layoutX.
setLayoutY(double v)Sets the value of the property layoutY.
getLayoutX()Returns the value of the property layoutX.
getLayoutY()Returns the value of the property layoutY.
setPrefSize(double width, double height)Sets the preferred size of the Pane.
relocate(double x, double y)Relocates the object to specified coordinates.

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

  1. Java程序创建一个窗格并将标签添加到窗格并将其添加到舞台:在这个程序中,我们将创建一个名为窗格的窗格和一个名为label的标签。现在将此标签添加到窗格,方法是将其作为窗格构造函数的参数传递。然后将窗格添加到场景,将场景添加到舞台。调用show()函数以显示最终结果。
    // Java Program to create a Pane
    // and add label to the Pane
    // and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.canvas.*;
    import javafx.scene.web.*;
    import javafx.scene.layout.Pane;
    import javafx.scene.shape.*;
      
    public class Pane_0 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Pane");
      
                // create a label
                Label label = new Label("this is Pane example");
      
                // create a Pane
                Pane pane = new Pane(label);
      
                // create a scene
                Scene scene = new Scene(pane, 400, 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程序创建一个窗格并将标签和按钮添加到窗格并将它们重新定位到特定位置并将其添加到舞台:在这个程序中,我们将创建一个名为窗格的窗格和一个名为label的标签。通过将此标签作为窗格构造函数的参数传递,将此标签添加到窗格。然后创建五个按钮并将它们添加到窗格中。使用relocate()函数将标签和按钮重新定位到指定位置。将窗格添加到场景并将场景添加到舞台。调用show()函数以显示最终结果。
    // Java Program to create a Pane
    // and add labels and buttons to the pane
    // and relocate them to specific positions
    // and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.canvas.*;
    import javafx.scene.web.*;
    import javafx.scene.layout.Pane;
    import javafx.scene.shape.*;
      
    public class Pane_1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Pane");
      
                // create a label
                Label label = new Label("this is Pane example");
      
                // relocate label
                label.relocate(100, 10);
      
                // create a Pane
                Pane pane = new Pane(label);
      
                // add buttons
                for (int i = 0; i < 5; i++) {
      
                    // create button
                    Button button = new Button("Button " + (int)(i + 1));
      
                    // add button
                    pane.getChildren().add(button);
      
                    // relocate button
                    button.relocate(100, 50 + 40 * i);
                }
      
                // create a scene
                Scene scene = new Scene(pane, 400, 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/layout/Pane.html