julianfs.com

J.A. González / Full-Stack & SEO

Ejercicio De Arreglo En Java

Avatar de WP Dev JaGonzalez

Full-Stack & SEO • Consultoría Web

|

3 min de lectura
Arreglo con GUI

En esta oportunidad compartiré con ustedes un practico Ejercicio De Arreglo En Java usando una GUI (ventana, botones, cuadro de texto, Label, Text Area), algo como hacer un formulario básico en java, claro, para hacer mas llamativo el ejercicio; anteriormente había compartido un ejercicio usando Cuadros de Dialogo, en el presente post se tendrá un arreglo con un tamaño fijo, y este tendrá cuatro opciones: Añadir, Buscar, Mostrar y Limpiar.

El evento de añadir se maneja cada vez que se pulsa un botón, a diferencia de cuando se hace por consola que por lo general es de corrido, ademas se puede buscar si existe el numero, ademas de mostrar en que posición esta, la opción de mostrar es para mostrar todos los elementos que hay guardados en el arreglo, y limpiar solo limpia el text area donde se muestran los resultados. Ahora bien, el código en cuestión 😀

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class GuiJava implements ActionListener{//implementando el listener de eventos

    JPanel jp1, jp2, jp3, jp4 = new JPanel();
    JButton jbAnia, jbBusc, jbMost, jbLimp;
    JTextField jt1;
    JTextArea jtA;
    int arreg [] = new int[5], c=0;  
    
    public GuiJava(){
        
        JFrame jfMain = new JFrame("Arreglos con GUI");
        jfMain.setLayout(new BorderLayout(40, 40)); 
        
        jtA = new JTextArea(10, 14);
        jtA.setBorder(BorderFactory.createLineBorder(Color.black));
        jtA.setEditable(false);
        
        panelNort();
        panelIzqu();
        panelCent();
        
        jfMain.add(jp1, BorderLayout.NORTH);
        jfMain.add(jp2, BorderLayout.WEST);
        jfMain.add(jp3, BorderLayout.CENTER);
        jfMain.add(jtA, BorderLayout.EAST);
        jfMain.add(jp4, BorderLayout.SOUTH);
        
        jfMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jfMain.setResizable(false);
        jfMain.setLocation(190, 90);
        jfMain.setSize(400, 350);
        jfMain.setVisible(true);
    }
    
    private void panelNort(){
        
        jp1 = new JPanel(new FlowLayout());        
        
        JLabel jlTit = new JLabel("ARREGLOS CON GUI :D");
        
        jlTit.setFont(new Font("verdana", Font.BOLD, 14));
        jlTit.setForeground(new Color(Integer.parseInt("1F03FF", 16)));
        
        jp1.add(jlTit);
        jp1.setVisible(true);
    }

    private void panelIzqu(){
        
        jp2 = new JPanel();
        jp2.setLayout(new GridLayout(4, 1, 3, 15));
        
        //creacion de los botones
        jbAnia = new JButton("Añadir");
        jbBusc = new JButton("Buscar");
        jbMost = new JButton("Mostrar");
        jbLimp = new JButton("Limpiar");
        
        //margen interior de botones        
        jbAnia.setMargin(new Insets(6, 2, 6, 2));
        jbBusc.setMargin(new Insets(6, 2, 6, 2));
        jbMost.setMargin(new Insets(6, 2, 6, 2));
        jbLimp.setMargin(new Insets(6, 2, 6, 2));
        
        //añadiendo los botones al panel
        jp2.add(jbAnia); jp2.add(jbBusc); jp2.add(jbMost); jp2.add(jbLimp);
        
        jbAnia.addActionListener(this); jbBusc.addActionListener(this); jbMost.addActionListener(this); jbLimp.addActionListener(this);
        
        //configurando color de border y margen interno para el panel
        jp2.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black)
                , BorderFactory.createEmptyBorder(25, 5, 25, 5)));
        jp2.setVisible(true);
    }
    
    private void panelCent(){
        
        jp3 = new JPanel();
        jp3.setLayout(new FlowLayout());
        
        JLabel jl1 = new JLabel("NUMERO ");
        jt1 = new JTextField(6);
        
        jt1.setSize(70, 25);
        jt1.setHorizontalAlignment(JTextField.RIGHT);
        
        jp3.add(jl1); jp3.add(jt1);
        
        jp3.setVisible(true);
    }
    
    private boolean existN(int a){
        int b =0;
        for(int i=0; i0)
            return true;
        else
            return false;
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        
        String op = e.getActionCommand();
        
        switch(op){
            
            case "Añadir":
                if(c

Cuando ejecutemos el código veremos lo siguiente:

Arreglo con GUI

En la anterior imagen he agregado unos cuantos elementos, aunque el código no esta terminado en su totalidad, en otras palabras, si se ingresa un carácter, una cadena o un símbolo habrá un error en tiempo de ejecución, ademas, una buena validación seria que no se ingresara números repetidos ;) y eso queda de tarea para ti señor visitante :D

Espero que el anterior codigo sea de gran utilidad :)

Si te ha gustado el post, compártelo, regala un like ó comenta ;)