Está en la página 1de 3

TEMA:EC2-F6-A11-Ejercicio Manejo de eventos en Interfaz gráfica de usuario.

Ejercicios sobre manejo de eventos


Descripción del ejercicio
1. Revisa el las páginas del libro y el video indicado en recursos acerca del manejo de eventos,
además te puedes apoyar de la variedad de videos que existen sobre el tema en youtube.
2. A partir de la interfaz sobre manejo de productos, que creaste en la actividad 10, realiza las
implementaciones necesarias para agregar un poco de funcionalidad, así como sigue:
a) Al botón guardar asigna la siguiente acción, cuando se realice un clic sobre el mismo, el
usuario recibirá el mensaje “Aun no se ha implementado la acción guardar”.
b) Al botón cancelar asignar la siguiente acción, cuando se realice un clic sobre el mismo,
el usuario recibirá el cuadro de dialogo preguntando “Está seguro de cancelar?”
3. Continua siguiendo las instrucciones de la actividad en plataforma para su respectiva entrega.

CÓDIGO
package ClasesYObjetos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class InterfazProductos extends JFrame implements ActionListener {


private JLabel lblId, lblDescripcion, lblCantidad, lblPrecio, lblEstado, lblCategoria, lblTotal;
private JTextField txtId, txtDescripcion, txtCantidad, txtPrecio, txtPrecioTotal;
private JComboBox<String> cmbEstado, cmbCategoria;
private JButton btnGuardar, btnEliminar;
private DefaultListModel<String> listaModelo;
private JList<String> listaProductos;
private double precioTotal = 0.0;

public InterfazProductos() {
setTitle("Tienda de Productos");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());

JPanel panelFormulario = new JPanel(new GridLayout(7, 2));


JPanel panelBotones = new JPanel(new FlowLayout());
JPanel panelLista = new JPanel(new BorderLayout());

lblId = new JLabel("ID del Producto:");


lblDescripcion = new JLabel("Descripción:");
lblCantidad = new JLabel("Cantidad:");
lblPrecio = new JLabel("Precio del Producto:");
lblEstado = new JLabel("Estado:");
lblCategoria = new JLabel("Categoría:");
lblTotal = new JLabel("Precio Total:");

txtId = new JTextField();


txtDescripcion = new JTextField();
txtCantidad = new JTextField();
txtPrecio = new JTextField();
txtPrecioTotal = new JTextField("0.00");
txtPrecioTotal.setEditable(false);

cmbEstado = new JComboBox<>(new String[]{"Activo", "Inactivo"});


cmbCategoria = new JComboBox<>(new String[]{"Aseo", "Comida", "Juguetes", "Ropa", "Snacks"});

btnGuardar = new JButton("Guardar");


btnGuardar.addActionListener(this);

btnEliminar = new JButton("Eliminar");


btnEliminar.addActionListener(this);

listaModelo = new DefaultListModel<>();


listaProductos = new JList<>(listaModelo);

panelFormulario.add(lblId);
panelFormulario.add(txtId);
panelFormulario.add(lblDescripcion);
panelFormulario.add(txtDescripcion);
panelFormulario.add(lblCantidad);
panelFormulario.add(txtCantidad);
panelFormulario.add(lblPrecio);
panelFormulario.add(txtPrecio);
panelFormulario.add(lblEstado);
panelFormulario.add(cmbEstado);
panelFormulario.add(lblCategoria);
panelFormulario.add(cmbCategoria);
panelFormulario.add(lblTotal);
panelFormulario.add(txtPrecioTotal);

panelBotones.add(btnGuardar);
panelBotones.add(btnEliminar);

panelLista.add(new JScrollPane(listaProductos), BorderLayout.CENTER);

add(panelFormulario, BorderLayout.NORTH);
add(panelBotones, BorderLayout.CENTER);
add(panelLista, BorderLayout.SOUTH);

setVisible(true);
}

public static void main(String[] args) {


SwingUtilities.invokeLater(() -> {
new InterfazProductos();
});
}

public void actionPerformed(ActionEvent e) {


if (e.getSource() == btnGuardar) {
JOptionPane.showMessageDialog(this, "Aun no se ha implementado la acción guardar", "Guardar",
JOptionPane.INFORMATION_MESSAGE);
} else if (e.getSource() == btnEliminar) {
// Mostrar cuadro de diálogo de confirmación para eliminar
int confirmado = JOptionPane.showConfirmDialog(this, "¿Está seguro de eliminar?", "Eliminar",
JOptionPane.YES_NO_OPTION);
if (confirmado == JOptionPane.YES_OPTION) {
// Eliminar producto seleccionado de la lista
int selectedIndex = listaProductos.getSelectedIndex();
if (selectedIndex != -1) {
String producto = listaModelo.getElementAt(selectedIndex);
String[] partes = producto.split(", Precio: \\$");
double precio = Double.parseDouble(partes[1]);
precioTotal -= precio;
txtPrecioTotal.setText(String.format("%.2f", precioTotal));
listaModelo.remove(selectedIndex);
}
}
}
}
}

CONCLUSIÓN
En resumen, este ejercicio ha proporcionado una buena práctica en la creación de interfaces de usuario en Java utilizando Swing.
Aprendí a diseñar una interfaz, manejar eventos de botones y utilizar cuadros de diálogo para mensajes y confirmaciones. Estos
conceptos son esenciales para desarrollar aplicaciones gráficas en Java.

También podría gustarte