Creación de una Tabla de Trabajadores con JavaFX

Introducción

En este artículo, aprenderemos a crear una aplicación JavaFX que muestra una lista de trabajadores en una tabla. Implementaremos una clase Trabajador y utilizaremos JavaFX para mostrar los datos en una interfaz gráfica. Esta aplicación es ideal para entender los conceptos básicos de JavaFX y la manipulación de tablas.

Enunciado del Ejercicio

Objetivo:

Desarrollar una aplicación JavaFX que muestre una lista de trabajadores en una tabla. Cada trabajador tendrá atributos como nombre, apellido y salario. La tabla debe ser capaz de mostrar estos atributos de manera organizada.

Requisitos:

  1. Crear un proyecto Java en Eclipse llamado TrabajadoresApp.
  2. Configurar el proyecto para usar JavaFX.
  3. Implementar una clase Trabajador con los atributos nombre, apellido y salario.
  4. Crear una interfaz gráfica que muestre una tabla con los datos de los trabajadores.
  5. Rellenar la tabla con una lista de objetos Trabajador.

Paso 1: Configuración del Proyecto

  1. Crear un nuevo proyecto Java en Eclipse:
  • File > New > Java Project
  • Nombre del proyecto: TrabajadoresApp
  1. Configurar JavaFX:
  • Descargar los JARs de JavaFX si no los tienes.
  • Añadir los JARs de JavaFX al proyecto:
    • Right-click en el proyecto > Properties > Java Build Path > Libraries > Modulepath > Add External JARs
    • Añade los JARs de JavaFX.
  1. Configurar el module-info.java (si estás utilizando módulos):
   module TrabajadoresApp {
       requires javafx.controls;
       exports com.example.trabajadoresapp;
   }

Paso 2: Implementar la Clase Trabajador

Crea un paquete en tu proyecto, por ejemplo, com.example.trabajadoresapp. Dentro de este paquete, crea una clase llamada Trabajador.

package com.example.trabajadoresapp;

public class Trabajador {
    private String nombre;
    private String apellido;
    private double salario;

    public Trabajador(String nombre, String apellido, double salario) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.salario = salario;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }
}

Paso 3: Crear la Interfaz JavaFX

Crea una clase llamada Main en el mismo paquete (com.example.trabajadoresapp) que extienda Application.

package com.example.trabajadoresapp;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Tabla de Trabajadores");

        // Crear la tabla
        TableView<Trabajador> table = new TableView<>();

        // Crear columnas
        TableColumn<Trabajador, String> nombreColumn = new TableColumn<>("Nombre");
        nombreColumn.setCellValueFactory(new PropertyValueFactory<>("nombre"));

        TableColumn<Trabajador, String> apellidoColumn = new TableColumn<>("Apellido");
        apellidoColumn.setCellValueFactory(new PropertyValueFactory<>("apellido"));

        TableColumn<Trabajador, Double> salarioColumn = new TableColumn<>("Salario");
        salarioColumn.setCellValueFactory(new PropertyValueFactory<>("salario"));

        // Añadir columnas a la tabla
        table.getColumns().addAll(nombreColumn, apellidoColumn, salarioColumn);

        // Crear datos
        ObservableList<Trabajador> data = getTrabajadores();
        table.setItems(data);

        // Crear layout principal
        BorderPane root = new BorderPane();
        root.setCenter(table);

        // Crear la escena
        Scene scene = new Scene(root, 600, 400);

        // Configurar y mostrar el escenario
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private ObservableList<Trabajador> getTrabajadores() {
        ObservableList<Trabajador> trabajadores = FXCollections.observableArrayList();
        trabajadores.add(new Trabajador("Juan", "Pérez", 25000));
        trabajadores.add(new Trabajador("Ana", "García", 30000));
        trabajadores.add(new Trabajador("Luis", "Fernández", 28000));
        trabajadores.add(new Trabajador("Marta", "López", 32000));
        return trabajadores;
    }

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

Explicación del Código

  1. Clase Trabajador:
  • Define los atributos nombre, apellido y salario.
  • Incluye los métodos get y set para cada atributo.
  • Constructor para inicializar los atributos.
  1. Clase Main:
  • Extiende Application y sobrescribe el método start.
  • TableView: Crea una tabla para mostrar los objetos Trabajador.
  • TableColumn: Define columnas para cada atributo (nombre, apellido y salario).
  • ObservableList: Crea una lista observable de Trabajador para rellenar la tabla.
  • Layout: Usa BorderPane para disponer la tabla en el centro.
  • Escena: Crea una escena con el BorderPane y la asigna al Stage.
  1. Datos de Prueba:
  • El método getTrabajadores() crea una lista observable con algunos objetos Trabajador de prueba.

Ejecutar la Aplicación

  1. Asegúrate de que tu configuración de ejecución esté apuntando a la clase Main.
  2. Ejecuta la aplicación desde Eclipse.

Esta aplicación JavaFX mostrará una ventana con una tabla que contiene información sobre varios trabajadores, permitiendo visualizar sus nombres, apellidos y salarios de manera clara y organizada. Con este ejercicio, habrás aprendido a crear una clase de modelo de datos, configurar una tabla en JavaFX y mostrar datos en una interfaz gráfica.

close up photo of programming of codes
Photo by luis gomes on Pexels.com

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

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