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:
- Crear un proyecto Java en Eclipse llamado
TrabajadoresApp
. - Configurar el proyecto para usar JavaFX.
- Implementar una clase
Trabajador
con los atributosnombre
,apellido
ysalario
. - Crear una interfaz gráfica que muestre una tabla con los datos de los trabajadores.
- Rellenar la tabla con una lista de objetos
Trabajador
.
Paso 1: Configuración del Proyecto
- Crear un nuevo proyecto Java en Eclipse:
- File > New > Java Project
- Nombre del proyecto:
TrabajadoresApp
- 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.
- 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
- Clase
Trabajador
:
- Define los atributos
nombre
,apellido
ysalario
. - Incluye los métodos
get
yset
para cada atributo. - Constructor para inicializar los atributos.
- Clase
Main
:
- Extiende
Application
y sobrescribe el métodostart
. - TableView: Crea una tabla para mostrar los objetos
Trabajador
. - TableColumn: Define columnas para cada atributo (
nombre
,apellido
ysalario
). - 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 alStage
.
- Datos de Prueba:
- El método
getTrabajadores()
crea una lista observable con algunos objetosTrabajador
de prueba.
Ejecutar la Aplicación
- Asegúrate de que tu configuración de ejecución esté apuntando a la clase
Main
. - 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.
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.