📜  JavaFX |职位类

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

JavaFX |职位类

Pos 类是 JavaFX 的一部分。 Pos 类包含表示水平和垂直定位或对齐的值。 Pos 类继承Enum类。

常用方法:

MethodExplanation
getHpos()Returns the horizontal alignment.
getVpos()Returns the vertical alignment.
valueOf(String n)Returns the Pos object whose name is the string specified.
values()Returns an array which contains all the Pos values.

下面的程序说明了 Pos Class 的使用:

  1. Java程序创建一个 tilepane 并添加一个指定的 Pos 值作为它的对齐方式:在这个程序中,我们将创建一个名为 tile_pane 的TilePane 。将名为label的标签和一些按钮添加到tile_pane 。使用setAlignment()函数设置tile_pane的对齐方式。将tile_pane的对齐方式设置为 Pos 值TOP_LEFT 。将tile_pane添加到场景中并将场景添加到舞台并调用show()函数以显示最终结果。
    // Java Program to create a tilepane and add
    // a specified Pos value as its alignment
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.geometry.*;
    import javafx.scene.paint.*;
    import javafx.scene.canvas.*;
    import javafx.scene.text.*;
    import javafx.scene.Group;
    import javafx.scene.shape.*;
      
    public class Pos_1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Pos");
      
                // create a label
                Label label = new Label("this is Pos example");
      
                // create a Tile pane
                TilePane tile_pane = new TilePane(label);
      
                // create and add buttons to tilepane
                for (int i = 1; i <= 7; i++) {
                    tile_pane.getChildren().add(new Button("Button " + i));
                }
      
                // set Alignment of pane
                tile_pane.setAlignment(Pos.TOP_LEFT);
      
                // create a scene
                Scene scene = new Scene(tile_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程序创建一个 TilePane 和一个包含不同 Pos 值的组合框:在这个程序中,我们将创建一个名为 tile_pane 的TilePane 。将名为 label 的标签和一些按钮添加到tile_pane 。使用setAlignment()函数设置tile_pane的对齐方式。我们将tile_pane的对齐方式设置为 Pos 值BASELINE_CENTER 。将所有 Pos 值的名称存储在一个字符串数组中。现在创建一个组合框,它将包含 Pos 值的名称,并创建一个动作事件来处理组合框事件。事件处理程序会将平铺窗格的对齐设置为所选的 pos 值。现在创建一个 VBox 并将 tilepane 和组合框添加到 vbox。最后,将vbox添加到场景中并将场景添加到舞台并调用show()函数显示最终结果。
    // Java Program to create a TilePane and 
    // a combobox that contains different 
    // values of Pos
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.geometry.*;
    import javafx.scene.paint.*;
    import javafx.scene.canvas.*;
    import javafx.scene.text.*;
    import javafx.scene.Group;
    import javafx.scene.shape.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.collections.*;
       
    public class Pos_2 extends Application {
       
    // launch the application
    public void start(Stage stage)
    {
      
        try {
      
            // set title for the stage
            stage.setTitle("Pos Class");
      
            // create a label
            Label label = new Label("This is Pos Class Example");
      
            // create a Tile pane
            TilePane tile_pane = new TilePane(label);
      
            // create and add buttons to tilepane
            for (int i = 1; i <= 7; i++) {
      
                tile_pane.getChildren().add(new Button("Button " + i));
            }
      
            // set Alignment of pane
            tile_pane.setAlignment(Pos.BASELINE_CENTER);
      
            // pos names
            String pos_name[] = {"BASELINE_CENTER", "BASELINE_LEFT",
                                 "BASELINE_RIGHT", "BOTTOM_CENTER", 
                                 "BOTTOM_LEFT", "BOTTOM_RIGHT", 
                                 "CENTER", "CENTER_LEFT", "CENTER_RIGHT",
                                 "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"};
      
            // Create a combo box
            ComboBox combo_box = 
              new ComboBox(FXCollections.observableArrayList(pos_name));
      
            // Create action event
            EventHandler event =
            new EventHandler() {
      
                public void handle(ActionEvent e)
                {
      
                    // set Alignement of the TilePane
                    tile_pane.setAlignment(Pos.valueOf(
                         (String)combo_box.getValue()));
                }
            };
      
            // Set on action
            combo_box.setOnAction(event);
      
            // create a VBox
            VBox vbox = new VBox(30, combo_box, tile_pane);
      
            // set Alignemnet
            vbox.setAlignment(Pos.CENTER);
      
            // create a scene
            Scene scene = new Scene(vbox, 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/geometry/Pos.html