Creación de una Tabla de Trabajadores en JavaFX

En este artículo, vamos a aprender cómo crear una clase Trabajador y mostrar una lista de objetos de esta clase en una tabla utilizando JavaFX. Esta aplicación JavaFX mostrará una tabla con la información de varios trabajadores, como su nombre, apellido y salario.

Paso 1: Configuración del Proyecto

  1. Configura tu entorno de desarrollo:
  • Abre Eclipse y crea un nuevo proyecto Java:
    • File > New > Java Project
    • Nombre del proyecto: TrabajadoresApp
  1. Configura JavaFX:
  • Añade los JARs de JavaFX a tu proyecto:
    • Right-click en el proyecto > Properties > Java Build Path > Libraries > Modulepath > Add External JARs
  1. Configura el module-info.java (si estás utilizando módulos):
   module TrabajadoresApp {
       requires javafx.controls;
       exports com.example.trabajadoresapp;
   }

Paso 2: Crear 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 Aplicación 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:
  • 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.

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