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
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.