Código Java – For Each / Instance Of

Este es el Ejemplo #06 del Topic: Programación Gráfica en Java.

La técnica del For Each nos ha salvado de muchos apuros en diversos lenguajes de programación a la hora de querer ejecutar rutinas en lote y ahorrarnos más que nada tiempo en la programación aunque el resultado podría tomar más tiempo de lo necesario, eso depende que es lo que se quiere hacer, en java lo podemos implementar por medio de una sentencia for dentro de una lista de objetos, componentes, arrays, etc como veremos a continuación:

...
    protected void setBloquear(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setEditable(false);
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setEnabled(false);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setEnabled(false);
                }

        }

    }

    protected void setDesbloquear(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setEditable(true);
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setEnabled(true);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setEnabled(true);
                }

        }

    }

    protected void setLimpiar(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setText("");
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setSelectedIndex(0);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setSelected(false);
                }

        }

    }
...

Código de Ejemplo:

package beastieux.gui;

import java.awt.GridLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author beastieux
 */
public class Ejm06_ForEach extends JFrame {

    private JPanel pnlEjemplo;

    public Ejm06_ForEach()
    {
        pnlEjemplo=new JPanel();

        JTextField txt1=new JTextField();
        JTextField txt2=new JTextField();

        JComboBox cmb1=new JComboBox();
        JComboBox cmb2=new JComboBox();

        JCheckBox chk1=new JCheckBox("Opcion 1");
        JCheckBox chk2=new JCheckBox("Opcion 2");

        cmb1.setModel(new DefaultComboBoxModel
                     (new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        cmb2.setModel(new DefaultComboBoxModel
                     (new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        JButton btnBloquear=new JButton("Bloquear");
            btnBloquear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBloquearActionPerformed(evt);
            }
        });

        JButton btnDesbloquear=new JButton("Desbloquear");
            btnDesbloquear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnDesbloquearActionPerformed(evt);
            }
        });

        JButton btnLimpiar=new JButton("Limpiar");
            btnLimpiar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLimpiarActionPerformed(evt);
            }
        });

        pnlEjemplo.add(txt1);
        pnlEjemplo.add(txt2);
        pnlEjemplo.add(cmb1);
        pnlEjemplo.add(cmb2);
        pnlEjemplo.add(chk1);
        pnlEjemplo.add(chk2);

        pnlEjemplo.add(btnBloquear);
        pnlEjemplo.add(btnDesbloquear);
        pnlEjemplo.add(btnLimpiar);

        pnlEjemplo.setLayout(new GridLayout(5,2));

        this.add(pnlEjemplo);
        this.setSize(500, 150);
    }

    protected void setBloquear(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setEditable(false);
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setEnabled(false);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setEnabled(false);
                }

        }

    }

    protected void setDesbloquear(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setEditable(true);
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setEnabled(true);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setEnabled(true);
                }

        }

    }

    protected void setLimpiar(JComponent pnl)
    {

        for (Object c : pnl.getComponents())
        {
                if (c instanceof JTextField)
                {
                        ((JTextField)c).setText("");
                }

                if (c instanceof JComboBox)
                {
                         ((JComboBox)c).setSelectedIndex(0);
                }

                if (c instanceof JCheckBox)
                {
                         ((JCheckBox)c).setSelected(false);
                }

        }

    }

    private void btnBloquearActionPerformed(java.awt.event.ActionEvent evt) {
        setBloquear(pnlEjemplo);
    }

    private void btnDesbloquearActionPerformed(java.awt.event.ActionEvent evt) {
        setDesbloquear(pnlEjemplo);
    }

    private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
        setLimpiar(pnlEjemplo);
    }

    public static void main(String args[]) {
        Ejm06_ForEach obj = new Ejm06_ForEach();
        obj.setVisible(true);
    }
}

Pueder ir al artículo principal:

Códigos Sencillos hechos en Java

One thought on “Código Java – For Each / Instance Of

Deja un comentario