Cómo Crear un Formulario en JavaFX


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

  1. Inicialización y creación de controles: La función initForm maneja la creación de los objetos UI, como TextField, ChoiceBox, y Button.
  2. Posicionamiento en el grid: Usamos GridPane para colocar cada control en la posición deseada. La función placeComponents establece las posiciones y márgenes de cada control.
  3. 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!

gray and black laptop computer
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.