From 23d8acd2815ff7e7d68705a8ee3b53450d81cbf3 Mon Sep 17 00:00:00 2001 From: Laifsyn <99366187+Laifsyn@users.noreply.github.com> Date: Tue, 21 May 2024 22:24:46 -0500 Subject: [PATCH] Terminar de dibujar una interfaz sencilla para el laboratorio. --- .../clsEstructuraDatos/Estructuras/Pila.java | 23 ++++++++++------- .../laboratorio_1/Main.java | 25 ++++++++++++++++--- .../pry3/DrawTable.java | 2 +- 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/utp/clsEstructuraDatos/Estructuras/Pila.java b/src/main/java/com/utp/clsEstructuraDatos/Estructuras/Pila.java index 6968227..86d1163 100644 --- a/src/main/java/com/utp/clsEstructuraDatos/Estructuras/Pila.java +++ b/src/main/java/com/utp/clsEstructuraDatos/Estructuras/Pila.java @@ -4,12 +4,17 @@ public class Pila { public static void main(String[] args) { - Pila pila = new Pila<>(5); + Pila pila = new Pila<>(10); + pila.insertar(10); + pila.insertar(10); pila.insertar(1); - pila.insertar(2); - pila.insertar(3); - pila.insertar(4); - pila.insertar(5); + pila.insertar(-415); + pila.insertar(1104); + pila.insertar(110); + pila.insertar(141); + pila.insertar(4142); + pila.insertar(11242); + pila.insertar(1414214); System.out.println("Cima: " + pila.getCima()); System.out.println(pila.imprimirPila()); pila.quitarCima(); @@ -18,9 +23,9 @@ public static void main(String[] args) { pila.insertar(6); System.out.println("Insertar 6"); System.out.println(pila.imprimirPila()); - pila.limpiarPila(); - System.out.println("Limpiar pila"); - System.out.println(pila.imprimirPila()); + // pila.limpiarPila(); + // System.out.println("Limpiar pila"); + // System.out.println(pila.imprimirPila()); } private int cima = 0; @@ -163,7 +168,7 @@ public String toString() { int ancho_columna = 0; for (String[] fila : this.table) { String celda = fila[indice_columna]; - if (celda.length() > ancho_columna) { + if (celda.length() >= ancho_columna) { // +1 para el caracter que encierra la celda ancho_columna = celda.length() + 1; columns_widths[indice_columna] = ancho_columna; diff --git a/src/main/java/com/utp/clsEstructuraDatos/laboratorio_1/Main.java b/src/main/java/com/utp/clsEstructuraDatos/laboratorio_1/Main.java index 420191f..1867e52 100644 --- a/src/main/java/com/utp/clsEstructuraDatos/laboratorio_1/Main.java +++ b/src/main/java/com/utp/clsEstructuraDatos/laboratorio_1/Main.java @@ -3,7 +3,11 @@ import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; + +import java.awt.Font; +import java.awt.GridBagConstraints; import java.awt.GridBagLayout; +import java.awt.TextArea; import java.util.ArrayList; import com.utp.clsEstructuraDatos.Estructuras.Pila; @@ -20,12 +24,20 @@ class App { final String laboratorio_1 = "Laboratorio 1"; Pila pila; + TextArea textArea = new TextArea(); + void start() { JFrame frame = new JFrame(laboratorio_1); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.setLayout(new GridBagLayout()); add_button_commands(frame); + GridBagConstraints c = new GridBagConstraints(); + c.gridy = 2; + c.gridwidth = 8; + this.textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14)); + this.textArea.setEditable(false); + frame.add(this.textArea, c); frame.setVisible(true); } @@ -105,6 +117,7 @@ void event_manager(Command cmd) { } this.pila = new Pila(cs.value()); + this.create_stack.setText("Reemplazar Pila"); // habilitar botones que solo pueden ser llamados con una pila instanciada. this.push.setEnabled(true); this.pop.setEnabled(true); @@ -134,11 +147,13 @@ void event_manager(Command cmd) { laboratorio_1, JOptionPane.INFORMATION_MESSAGE); } case Command.isEmpty() -> { - final String msg = this.pila.pilaVacia() ? "La pila esta vacia" : "La pila no esta vacia"; + final String msg = (this.pila.pilaVacia() ? "La pila esta vacia" : "La pila no esta vacia") + + String.format(". Tiene %d elementos", this.pila.getCima()); JOptionPane.showMessageDialog(null, msg, laboratorio_1, JOptionPane.INFORMATION_MESSAGE); } case Command.isFull() -> { - final String msg = this.pila.pilaLLena() ? "La pila esta llena" : "La pila no esta llena"; + final String msg = (this.pila.pilaLLena() ? "La pila esta llena" : "La pila no esta llena") + + String.format(". Le quedan %d espacios", this.pila.getCapacidad() - this.pila.getCima()); JOptionPane.showMessageDialog(null, msg, laboratorio_1, JOptionPane.INFORMATION_MESSAGE); } case Command.Clear() -> { @@ -155,10 +170,14 @@ void event_manager(Command cmd) { laboratorio_1, JOptionPane.INFORMATION_MESSAGE); } case Command.DisplayStack() -> { - JOptionPane.showMessageDialog(null, this.pila.imprimirPila(), laboratorio_1, + TextArea textArea = new TextArea(this.pila.imprimirPila()); + textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14)); + textArea.setEditable(false); + JOptionPane.showMessageDialog(null, textArea, laboratorio_1, JOptionPane.INFORMATION_MESSAGE); } } + this.textArea.setText(this.pila.imprimirPila()); } void error_dialogue(String msg) { diff --git a/src/main/java/com/utp/clsEstructuraDiscretas/pry3/DrawTable.java b/src/main/java/com/utp/clsEstructuraDiscretas/pry3/DrawTable.java index baf3a6a..c5f1c89 100644 --- a/src/main/java/com/utp/clsEstructuraDiscretas/pry3/DrawTable.java +++ b/src/main/java/com/utp/clsEstructuraDiscretas/pry3/DrawTable.java @@ -31,7 +31,7 @@ public String toString() { int ancho_columna = 0; for (String[] fila : this.table) { String celda = fila[indice_columna]; - if (celda.length() > ancho_columna) { + if (celda.length() >= ancho_columna) { // +1 para el caracter que encierra la celda ancho_columna = celda.length() + 1; columns_widths[indice_columna] = ancho_columna;