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étodolayoutChildren()
. -
El método
layoutChildren()
especificará el tamaño del botón. Podemos usarsetPrefWidth()
ysetPrefHeight()
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 claseToolBar
. -
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:
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