ISTP: Manuel Seoane Corrales Java Swing PRÁCTICA Nº 04 Diseñe una aplicación que utilice un vector que contenga nombres de amigos, ya través de botones se puedan realizar diferentes procesos como se indica en la siguiente interfaz gráfica. PROCEDIMIENTO: 1. Crea un nuevo proyecto y paquete con el nombre practica04, luego nuevo JFrame Form con el nombre Principal, donde hacemos el siguiente diseño. Clic en el Frame y en la propiedad title y le asignamos un título. 2. Sobre el frame colocamos un panel (panPrincipal) con distribución BorderLayout: En el norte colocamos la caja de texto con un texto en el borde, en el centro colocamos otro panel (panCentral) con distribución GridLayout de 2 columnas, 1 fila. En la primera columna colocamos un scrollpane con un área de texto y en la segunda columna colocamos un tercer panel (panBotones) con distribución GridLayout de 1 columna, 8 filas donde ingresamos los botones. 3. Colocamos una etiqueta en el sur del panel principal para el número de elementos. 4. Observe la distribución de los componentes y los nombres asignados como corresponde. Lic. Bernardo C. Hermitaño Atencio ISTP: Manuel Seoane Corrales Java Swing 5. Vamos al código fuente (source) para declarar un objeto de la clase Vector. Clic en source y completamos lo siguiente: public class Principal extends javax.swing.JFrame { Vector amigos = new Vector(); /** Creates new form Principal */ public Principal() { initComponents(); } 6. Ahora vamos programar todos los botones. Se recomienda hacerlo uno por uno mediante un doble clic sobre el botón. private void btnAgregaAlFinalActionPerformed(java.awt.event.ActionEvent evt) { alFinal(); } private void btnAgregaAlInicioActionPerformed(java.awt.event.ActionEvent evt) { alInicio(); } private void btnQuitarActionPerformed(java.awt.event.ActionEvent evt) { quitaUno(); } private void btnQuitarTodoActionPerformed(java.awt.event.ActionEvent evt) { quitaTodos(); } private void btnObtieneElPrimeroActionPerformed(java.awt.event.ActionEvent evt) { elPrimero(); } private void btnObtieneElUltimoActionPerformed(java.awt.event.ActionEvent evt) { elUltimo(); } private void btnEmpiezaConActionPerformed(java.awt.event.ActionEvent evt) { empiezaCon(); } private void btnCapacidadTamañoActionPerformed(java.awt.event.ActionEvent evt) { capacidad(); } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void alFinal() { // leer nombre String nombre = txtNombre.getText(); if (nombre.length()==0) lblInformacion.setText("Ingrese un Nombre"); else { lblInformacion.setText(""); // agregar al final amigos.addElement(nombre); // muestra contenido del vector muestraVector(); } } Lic. Bernardo C. Hermitaño Atencio ISTP: Manuel Seoane Corrales Java Swing //‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void muestraVector(){ // limpia area txtSalida.setText("contenido del vector:\n"); // obtiene tamaño int n=amigos.size(); // muestra cada elemento for (int i=0; i < n; i++) txtSalida.append(amigos.elementAt(i).toString()+"\n"); // muestra tamaño del vector lblInformacion.setText("Número de elementos: "+ n); } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void alInicio() { // leer nombre String nombre = txtNombre.getText(); if (nombre.length()==0) lblInformacion.setText("Ingrese un Nombre"); else { lblInformacion.setText(""); // agregar al inicio amigos.add(0,nombre); // muestra contenido del vector muestraVector(); } } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void quitaUno() { // leer nombre String nombre = txtNombre.getText(); if (nombre.length()==0) lblInformacion.setText("Ingrese un Nombre"); else { lblInformacion.setText(""); // si lo contiene if (amigos.contains(nombre)) { // saca el nombre del vector amigos.remove(nombre); // muestra contenido del vector muestraVector(); } else lblInformacion.setText("Nombre no encontrado"); } } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void quitaTodos() { if (amigos.isEmpty()) lblInformacion.setText("El vector no tiene elementos"); else { lblInformacion.setText(""); amigos.clear(); muestraVector(); } } Lic. Bernardo C. Hermitaño Atencio ISTP: Manuel Seoane Corrales Java Swing //‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void elPrimero() { // obtiene el primero del vector como String String nombre = amigos.firstElement().toString(); // muestra nombre obtenido txtNombre.setText(nombre); txtNombre.selectAll(); } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void elUltimo() { // obtiene el ultimo del vector como String String nombre = amigos.lastElement().toString(); // muestra nombre obtenido txtNombre.setText(nombre); txtNombre.selectAll(); } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void empiezaCon() { // leer iniciales String nombre = txtNombre.getText(); if (nombre.length()==0) lblInformacion.setText("Ingrese un Nombre"); else { int indexEncontrado=‐1; String elemento=""; for (int i=0; i < amigos.size(); i++){ // obtiene elemento del arreglo como String elemento=amigos.elementAt(i).toString(); // si empieza con el nombre ingresado if (elemento.startsWith(nombre)){ indexEncontrado=i;//guarda indice break;// sale del for } } // si lo encontro if (indexEncontrado != ‐1){ lblInformacion.setText("Posicion: "+indexEncontrado); txtNombre.setText(elemento); txtNombre.selectAll(); } else // no lo encontro lblInformacion.setText("Ninguno empieza con "+nombre); } } //‐‐‐‐‐‐‐‐‐‐‐‐‐‐ void capacidad(){ // obtiene capacidad int capa= amigos.capacity(); // obtiene el tamaño int tama= amigos.size(); // muestra capacidad y tamaño lblInformacion.setText("Tamaño: "+tama+", Capacidad: "+capa); } Lic. Bernardo C. Hermitaño Atencio