Botón cuadrado JavaFX

Sheeraz Gul 15 febrero 2024
Botón cuadrado JavaFX

Los botones cuadrados se pueden crear extendiendo la clase ToolBar en Java. Este tutorial demuestra cómo crear un botón cuadrado en JavaFX.

Crear botón cuadrado en JavaFX

Los botones se crean instanciando la clase Button en JavaFX. Los botones se utilizan para ejecutar algunas actividades en JavaFX.

Está representado por la clase JavaFX.scene.control.Button. El botón puede tener un texto o un icono.

Necesitamos establecer el tamaño del botón para crear el botón cuadrado. Las siguientes funciones se utilizan para manipular el tamaño del botón en JavaFX.

Funciones:

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

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

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

Podemos usar los métodos anteriores para establecer el tamaño de un botón para que sea cuadrado. Siga los pasos a continuación para crear un botón cuadrado en JavaFX:

  • Primero, cree una clase extendiendo la clase Aplicación.
  • Implemente el método start().
  • Cree los botones instanciando la clase Button.
  • Cree otra clase que amplíe la Clase ToolBar. Esta clase tendrá un método layoutChildren().
  • El método layoutChildren() especificará el tamaño del botón. Podemos usar setPrefWidth() y setPrefHeight() con los mismos valores para crear botones cuadrados.
  • Cree un objeto de la clase que hereda la clase ToolBar, instancia la clase y pásele los botones.
  • Cree un panel de borde instanciando la clase BorderPane y pasando el objeto anterior de la clase ToolBar.
  • Cree un objeto de escena, cree una instancia de la clase de escena y pase el objeto BorderPane a la escena.
  • Agrega una escena al escenario usando el método setScene().
  • Muestre el escenario utilizando el método show().
  • Finalmente, inicie la aplicación.

Código fuente completo:

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);
  }
}

El código anterior creará el botón cuadrado del tamaño en el que se ajusta el texto.

Producción:

Botón cuadrado JavaFX

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

Artículo relacionado - Java JavaFX