JavaFX 方形按钮

Sheeraz Gul 2022年7月18日
JavaFX 方形按钮

可以通过扩展 Java 中的 ToolBar 类来创建方形按钮。本教程演示了如何在 JavaFX 中创建方形按钮。

在 JavaFX 中创建方形按钮

按钮是通过在 JavaFX 中实例化 Button 类来创建的。这些按钮用于执行 JavaFX 中的一些活动。

它由 JavaFX.scene.control.Button 类表示。按钮上可以有文本或图标。

我们需要设置按钮的大小来创建方形按钮。以下函数用于操作 JavaFX 中按钮的大小。

功能:

button.setMinWidth()
button.setMaxWidth()
button.setPrefWidth()

button.setMinHeight()
button.setMaxHeight()
button.setPrefHeight()

button.setMinSize()
button.setMaxSize()
button.setPrefSize()

我们可以使用上面的方法来设置按钮的大小,使其成为方形。按照以下步骤在 JavaFX 中创建方形按钮:

  • 首先,通过扩展 Application 类创建一个类。
  • 实现 start() 方法。
  • 通过实例化类 Button 来创建按钮。
  • 创建另一个扩展 ToolBar 类的类。这个类将有一个方法 layoutChildren()
  • layoutChildren() 方法将指定按钮的大小。我们可以使用具有相同值的 setPrefWidth()setPrefHeight() 来创建方形按钮。
  • 创建一个继承 ToolBar 类的类的对象,实例化该类并将按钮传递给它。
  • 通过实例化 BorderPane 类并传递 ToolBar 类的上述对象来创建边框窗格。
  • 创建一个场景对象,实例化场景类,并将 BorderPane 对象传递给场景。
  • 使用 setScene() 方法将场景添加到舞台。
  • 使用 show() 方法显示舞台。
  • 最后,启动应用程序。

完整源代码:

package delftstack;

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ToolBar;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class JavaFX_Square_Button extends Application {

    @Override
    public void start(Stage Demo_Stage) {

        Button Button1 = new Button("One");
        Button Button2 = new Button("Two Two");
        Button Button3 = new Button("Three Three Three");

        Square_Button_ToolBar Tool_Bar = new Square_Button_ToolBar();
        Tool_Bar.getItems().addAll(Button1, Button2, Button3);

        BorderPane Border_Pane = new BorderPane();
        Border_Pane.setTop(Tool_Bar);

        Scene Demo_Scene = new Scene(Border_Pane, 500, 500);
        Demo_Stage.setScene(Demo_Scene);
        Demo_Stage.show();

        Tool_Bar.requestLayout();
    }

    // A derivative of the ToolBar class to resize all buttons of the same size and square.
    class Square_Button_ToolBar extends ToolBar {

        @Override
        protected void layoutChildren() {
            double Min_Pref_Size = Calculate_Pref_Child_Size();
            for (Node x : getItems()) {
                if (x instanceof Button) {
                    ((Button) x).setPrefWidth(Min_Pref_Size);
                    ((Button) x).setPrefHeight(Min_Pref_Size);
                }
            }
            super.layoutChildren();
        }
        private double Calculate_Pref_Child_Size() {
            double Min_Pref_Size = 0.0d;
            for (Node x : getItems()) {
                if (x instanceof Button) {
                    Min_Pref_Size = Math.max(Min_Pref_Size, x.prefWidth(-1));
                }
            }
            return Min_Pref_Size;
        }

    }
    public static void main(String[] args) {
        launch(args);
    }
}

上面的代码将创建适合文本大小的方形按钮。

输出:

JavaFX 方形按钮

Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - Java JavaFX