JavaFX es una herramienta robusta para el desarrollo de interfaces de usuario en aplicaciones Java. Proporciona un conjunto rico de controles de UI, animaciones, y efectos que permiten construir interfaces atractivas y funcionales. En este artículo, exploraremos un ejemplo práctico de cómo desarrollar una interfaz gráfica para una tienda de gafas que gestiona tanto proveedores como clientes utilizando JavaFX.
Requisitos del Ejercicio
La aplicación debe permitir:
- Gestión de Proveedores:
- Agregar, eliminar y mostrar proveedores.
- Visualizar detalles de cada proveedor seleccionado.
- Gestión de Clientes:
- Agregar, eliminar y cargar clientes.
- Visualizar detalles de cada cliente seleccionado.
- Interfaz Amigable:
- Debe ser clara y fácil de usar.
- Debe tener secciones claramente definidas para clientes y proveedores.
Estructura de la Aplicación
La aplicación se divide en varias partes principales:
- Menú Principal:
- Opciones para navegar entre la gestión de proveedores y clientes.
- Panel de Proveedores:
- Lista de proveedores y botones para agregar, eliminar y mostrar detalles.
- Panel de Clientes:
- Lista de clientes y botones para agregar, eliminar y cargar información.
Ejemplo de Código JavaFX
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class TiendaGafas extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Sistema de Gestión - Tienda de Gafas");
// Menús
MenuBar menuBar = new MenuBar();
Menu menuArchivo = new Menu("Archivo");
Menu menuGestion = new Menu("Gestión");
MenuItem exitItem = new MenuItem("Salir");
MenuItem gestionProveedores = new MenuItem("Proveedores");
MenuItem gestionClientes = new MenuItem("Clientes");
menuArchivo.getItems().add(exitItem);
menuGestion.getItems().addAll(gestionProveedores, gestionClientes);
menuBar.getMenus().addAll(menuArchivo, menuGestion);
// Paneles
BorderPane root = new BorderPane();
TabPane tabPane = new TabPane();
Tab tabProveedores = new Tab("Proveedores");
VBox panelProveedores = createProviderPanel();
tabProveedores.setContent(panelProveedores);
tabProveedores.setClosable(false);
Tab tabClientes = new Tab("Clientes");
VBox panelClientes = createCustomerPanel();
tabClientes.setContent(panelClientes);
tabClientes.setClosable(false);
tabPane.getTabs().addAll(tabProveedores, tabClientes);
root.setTop(menuBar);
root.setCenter(tabPane);
// Acciones
gestionProveedores.setOnAction(e -> tabPane.getSelectionModel().select(tabProveedores));
gestionClientes.setOnAction(e -> tabPane.getSelectionModel().select(tabClientes));
exitItem.setOnAction(e -> primaryStage.close());
// Escena
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
private VBox createProviderPanel() {
VBox vbox = new VBox(10);
Label label = new Label("Lista de Proveedores");
ListView<String> listView = new ListView<>();
listView.getItems().addAll("Proveedor 1", "Proveedor 2", "Proveedor 3");
Button addButton = new Button("Agregar Proveedor");
Button deleteButton = new Button("Eliminar Proveedor");
vbox.getChildren().addAll(label, listView, addButton, deleteButton);
return vbox;
}
private VBox createCustomerPanel() {
VBox vbox = new VBox(10);
Label label = new Label("Lista de Clientes");
ListView<String> listView = new ListView<>();
listView.getItems().addAll("Cliente 1", "Cliente 2", "Cliente 3");
Button addButton = new Button("Agregar Cliente");
Button deleteButton = new Button("Eliminar Cliente");
vbox.getChildren().addAll(label, listView, addButton, deleteButton);
return vbox;
}
public static void main(String[] args) {
launch(args);
}
}
Descripción del Código
- Interfaz Principal:
- La ventana principal muestra un menú con opciones para gestionar proveedores y clientes y un
TabPane
que contiene dos pestañas: una para proveedores y otra para clientes.
- Menú de Navegación:
- El menú permite al usuario cerrar la aplicación o cambiar entre las vistas de gestión de proveedores y clientes.
- Paneles de Gestión:
- Cada pestaña contiene una lista de proveedores o clientes y botones para realizar acciones específicas como agregar o eliminar.
Conclusión
Este ejemplo ilustra cómo se puede construir una interfaz de usuario en JavaFX para una tienda de gafas, permitiendo una gestión efectiva de proveedores y clientes. Utilizando JavaFX, los desarrolladores pueden crear aplicaciones ricas en características con interfaces gráficas claras y efectivas. Este tipo de desarrollo es ideal para aplicaciones de gestión empresarial donde la usabilidad y la organización son cruciales.