En este tutorial, aprenderemos cómo crear un formulario básico usando JavaFX. JavaFX es una plataforma rica para la creación de aplicaciones de Internet enriquecidas (RIA) que pueden funcionar en una variedad de dispositivos. Hoy, vamos a enfocarnos en un ejemplo simple: un formulario de contacto con campos para email, tema, categoría y observaciones.
Estructura del Proyecto
Primero, asegúrate de tener JavaFX configurado en tu entorno de desarrollo. Para este proyecto, estructuraremos nuestro código en el paquete app.panel
.
Creación del Panel de Formulario
Vamos a crear una clase ContactFormPanel
que hereda de GridPane
, que nos permitirá posicionar fácilmente los controles en una cuadrícula.
package app.panel;
import javafx.geometry.Insets;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
public class ContactFormPanel extends GridPane {
public TextField txtEmail;
public TextField txtSubject;
public ChoiceBox<String> cbCategory;
public TextArea txtComments;
public Button btnSubmit;
public ContactFormPanel() {
initForm();
placeComponents();
}
private void initForm() {
// Inicialización de los controles
txtEmail = new TextField();
txtSubject = new TextField();
cbCategory = new ChoiceBox<>();
txtComments = new TextArea();
btnSubmit = new Button("Enviar");
// Añadimos opciones al ChoiceBox
cbCategory.getItems().addAll("Perfil", "Soporte", "General");
}
private void placeComponents() {
// Etiquetas
Label lblEmail = new Label("Email:");
Label lblSubject = new Label("Asunto:");
Label lblCategory = new Label("Categoría:");
Label lblComments = new Label("Comentarios:");
// Posicionamiento en el grid
this.add(lblEmail, 0, 0);
this.add(txtEmail, 1, 0);
this.add(lblSubject, 0, 1);
this.add(txtSubject, 1, 1);
this.add(lblCategory, 0, 2);
this.add(cbCategory, 1, 2);
this.add(lblComments, 0, 3);
this.add(txtComments, 1, 3, 2, 1); // Merge columns for TextArea
this.add(btnSubmit, 0, 4, 2, 1); // Merge columns for Button
// Configuración de márgenes
Insets insets = new Insets(5, 10, 5, 10);
setMargin(lblEmail, insets);
setMargin(txtEmail, insets);
setMargin(lblSubject, insets);
setMargin(txtSubject, insets);
setMargin(lblCategory, insets);
setMargin(cbCategory, insets);
setMargin(lblComments, insets);
setMargin(txtComments, insets);
setMargin(btnSubmit, insets);
}
}
Explicación del Código
- Inicialización y creación de controles: La función
initForm
maneja la creación de los objetos UI, comoTextField
,ChoiceBox
, yButton
. - Posicionamiento en el grid: Usamos
GridPane
para colocar cada control en la posición deseada. La funciónplaceComponents
establece las posiciones y márgenes de cada control. - Añadir opciones a
ChoiceBox
: Se especifican las categorías disponibles que el usuario puede seleccionar.
Conclusión
Hemos visto cómo crear un formulario simple en JavaFX. Este ejemplo es básico y puede ser extendido con funcionalidades como validaciones de datos y estilos CSS para mejorar la interfaz. JavaFX es una herramienta poderosa para construir interfaces de usuario en aplicaciones de escritorio, ¡y espero que este tutorial te haya servido para empezar a explorar sus posibilidades!