Filtro CPL Polarizado ventajas

Calculador de resistencias de colores a valores y de valores a colores con 4 y 5 bandas (programado en JAVA)

Bienvenidos!

Les quiero compartir un pequeño programa muy interesante realizado en JAVA.

La función principal del programa es calcular el valor de la resistencia con 4 y 5 bandas (el usuario elige) y mostrar los colores de la resistencia.
Es decir:
- El usuario puede elegir los colores y el programa muestra el valor de esos colores en diferentes equivalencias Ohms, Megaohms, etc.
- El usuario puede escribir el valor de la resistencia (Ohms) y el programa mostrará los colores equivalentes a el valor tecleado por el usuario.

Tal como lo muestran las siguientes capturas:






Les mostraré los métodos más importantes del programa:
Esta primera parte fue realizada por yo: Iván Luis Jiménez

Muestro el código para convertir de colores a valores
En la parte del constructor tenemos el control de los botones y diseño del programa:
public Resistencia() {
        initComponents();
        setSize(700, 500);
        AWTUtilities.setWindowOpaque(this, false);//quita el fondo del JPanel, esto para volverlo transparente
        setLocationRelativeTo(this); //ubica la venta o el JPanel al centro de la pantalla
        List1.setVisible(false);
        List2.setVisible(false);
        List3.setVisible(false);

        multiplicativo.setVisible(false);
        tolerancia.setVisible(false);

        color1.setVisible(false);
        color2.setVisible(false);
        color3.setVisible(false);
        tolerancia1.setBackground(oro());
        Calcular.setBackground(oro());
        unidad.setBackground(oro());

        multiplicadorb.setVisible(false);
        toleranciab.setVisible(false);
        total_resis(Integer.parseInt(bandas.getSelectedItem().toString()));//manda a llamar el método para obtener el número de cintas a trabajar

        List1.setBackground(oro());
        List2.setBackground(oro());
        List3.setBackground(oro());
        multiplicativo.setBackground(oro());
        tolerancia.setBackground(oro());

        p1.setBackground(Color.CYAN);
        p2.setBackground(Color.CYAN);
        p3.setBackground(Color.cyan);
        Cerrar.setBackground(Color.RED);
        bandas.setBackground(Color.green);
        Reset.setBackground(oro());

    }

Métodos para obtener algunos colores:

public Color cafe() { //obtiene el color café y lo retorna
        Color cafe = new Color(102, 51, 0);
        return cafe;
    }

    public Color violeta() { //obtiene el color violeta y lo retorna
        Color violeta = new Color(204, 0, 204);

        return violeta;
    }

    public Color oro() {//obtiene el color oro y lo retorna
        Color oro = new Color(172, 150, 0);
        return oro;
    }

    public Color plata() { //obtiene el color plata y lo retorna
        Color plata = new Color(153, 153, 153);
        return plata;
    }

    public Color reset_color() {//con este método reseteamos el color a predeterminado de JAVA
        Color reset = new Color(187, 187, 187);
        return reset;
    }
El siguiente método se llama cuando se selecciona un opción del primer JList (el primer color), y es el mismo método para todos los otros Jlist así que sólo les muestro uno:
public int Select1() {
        int opcion = List1.getSelectedIndex();
        switch (opcion) {
            case 0:
                color1.setBackground(reset_color());//en caso de que se seleccione la primera opción indica que es ninguno y por lo tanto es color predeterminado de JAVA
                break;
            case 1:
                opcion = 0;//este valor indica por que numéro se multiplicará la siguiente cinta como en negro se multiplicara por 0
                color1.setBackground(Color.BLACK);//en caso de que seleccione opción 1 es decir la opción de color Negro se colorea el botón a negro
                break;
            case 2:
                opcion = 1;//este valor indica por que numero se multiplicará la siguiente cinta en este caso por 1 (el café =1)
                color1.setBackground(cafe());
                break;
            case 3:
                opcion = 2;//rojo = 2
                color1.setBackground(Color.RED);
                break;
            case 4:
                opcion = 3;//Naranja=3
                color1.setBackground(Color.ORANGE);
                break;
            case 5:
                opcion = 4;//Amarillo=4
                color1.setBackground(Color.YELLOW);
                break;
            case 6:
                opcion = 5;//Verde = 5
                color1.setBackground(Color.GREEN);
                break;
            case 7:
                opcion = 6;//Azul=6
                color1.setBackground(Color.BLUE);
                break;
            case 8:
                opcion = 7;//Violeta=7
                color2.setBackground(violeta());
                break;
            case 9:
                opcion = 8;//Gris=8
                color1.setBackground(Color.GRAY);
                break;
            case 10:
                opcion = 9;//Blanco=9
                color1.setBackground(Color.WHITE);
                break;
            default:

                break;
        }

        return opcion;//retornamos el valor del color elegido
    }
Con el siguiente método se hacen las operaciones correspondientes para obtener el valor de la resistencia con los colores seleccionados
public float calc() {
           
        float banda1 = 0;
        if ((Integer.parseInt(bandas.getSelectedItem().toString())) == 4) {//Si selecciono con 4 bandas
            banda1 = ((Select1() * 10) + Select2()) * Select4();//el select1 se multiplica por 10 y se le suma el producto de la cinta 2 por la 4
            //la última banda (Select5) indica la tolerancia es por ello que no se involucra en esta operación
        } else {//si no es 4 entonces es 5 es decir se selecciono 5 bandas
            banda1 = ((Select1() * 100) + (Select2() * 10) + Select3()) * Select4();//Y realizamos la operación similar a la anterior sólo que 
            //con 5 bandas
        }

        if (tolerancia.getSelectedItem().toString() =="Ninguno") {//En esta parte se compara si en la última banda no se selecciono nada, esto       //para no mostrar el botón 
            tole.setText("+/- 20%");//si no se elige color por default se entiende que es tiene una tolerancia de +/- 20
            toleranciab.setVisible(false);
        }
        
        return banda1;//retornamos el valor obtenido
    }
Ahora únicamente mandamos a llamar el método con el evento del JList para mostrar los resultados obtenidos: Esto se repite para todos los otros eventos de los JList

private void List1ActionPerformed(java.awt.event.ActionEvent evt) {                                      

        Resultado.setText("" + calc());

    }  
Prácticamente esto sería todo para convertir de Colores a Valores. De valores a colores Este proceso si esta un poco más complicado, pero un macho puedo con lo que le pongan! Esta segunda parte fue realizada por mi gran amigo: Francisco Aguilar Jacobo Bueno empecemos! El siguiente método se ejecuta con el evento del botón Ejecutar:
private void CalcularActionPerformed(java.awt.event.ActionEvent evt) {                                         

        if ((valor.getText().isEmpty())) {//Esto sólo para comprobar que en la caja de texto hay un valor, propiamente esta caja de texto tiene //programado un evento para detectar que se teclee sólo números
            JOptionPane.showMessageDialog(null, "Debe ingresar un valor en Ohm", "Atención", 2);//si esta vació se manda este mensaje
        } else {
            float r = Float.parseFloat(valor.getText());//guardamos en valor obtenido en la variable convertida a Float
           
            if (r < 1) {
                JOptionPane.showMessageDialog(null, "solo numeros >=1");//si el numero es menos a 1 es decir 0 o menores a 0 se lanza otro //mensaje
             
            } else {//de lo contrario si hay numero entero en la caja de texto
                List1.setSelectedItem("Negro");//por default las cintas las ponemos en negro, si es necesario cambiarse se cambian en el método //correspondiente
                List2.setSelectedItem("Negro");
                multiplicativo.setSelectedItem("Negro");
                
                color1.setBackground(Color.black);
                color2.setBackground(Color.black);
                multiplicadorb.setBackground(Color.black);
                divide_ca(valor.getText());//se manda a llamar el método que realiza todo la talacha
            }
        }

//Evento para la caja de texto, para que sólo acepte números
private void valorKeyTyped(java.awt.event.KeyEvent evt) {                               
        char c = evt.getKeyChar();
        if ((Character.isLetter(c))) {
            getToolkit().beep();

            evt.consume();

            JOptionPane.showMessageDialog(null, "Ingrese sólo números", "Atención", 2);

        }


    } 
Método que realiza toda la talacha de convertir de valores a colores

public void divide_ca(String cadena) {
        int r = (int) (Double.parseDouble(cadena)); //convierte a entero la cadena
        String copia = String.valueOf(r); //convierte String del entero convertido

        int resultado = 0;
        //String color3 = "negro";
        if (copia.length() == 1) {//si el tamaño recibido es 1 es decir sea un número de una cifra
            resultado = r;
            //here
            multiplicativo.setSelectedItem("Negro");//se selecciona el JList la opción Negro
            multiplicadorb.setBackground(Color.BLACK);//Y el botón se pinta de Negro
          
        } else {
            if (copia.length() == 2) {//si es un número de dos cifras
                resultado = r;
                multiplicadorb.setBackground(Color.BLACK);//se selecciona el JList la opción Negro
                //here
                multiplicativo.setSelectedItem("Negro");//Se pinta de negro
            } else if (copia.length() == 3) {//si es número de tres cifras y así sucesivamente
                resultado = r / 10;
                multiplicadorb.setBackground(cafe());
                multiplicativo.setSelectedItem("Cafe");

            } else if (copia.length() == 4) {
                resultado = r / 100;
                multiplicadorb.setBackground(Color.RED);
                multiplicativo.setSelectedItem("Rojo");
            } else if (copia.length() == 5) {
                resultado = r / 1000;
                multiplicadorb.setBackground(Color.ORANGE);
                multiplicativo.setSelectedItem("Naranja");
            } else if (copia.length() == 6) {
                resultado = r / 10000;
                multiplicadorb.setBackground(Color.YELLOW);
                multiplicativo.setSelectedItem("Amarillo");
            } else if (copia.length() == 7) {
                resultado = r / 100000;
                multiplicadorb.setBackground(Color.GREEN);
                multiplicativo.setSelectedItem("Verde");
            } else if (copia.length() == 8) {
                resultado = r / 100000;
                multiplicadorb.setBackground(Color.BLUE);
                multiplicativo.setSelectedItem("Azul");
            } else if (copia.length() == 9) {
                resultado = r / 10000000;
                multiplicadorb.setBackground(violeta());
                multiplicativo.setSelectedItem("Violeta");
            }
        }

        //System.out.println("resul: " + resultado);
        String copi = String.valueOf(resultado);
        int[] enteros = new int[copi.length()];

        String cad = "";

        for (int j = 0; j < copi.length(); j++) {
            cad = String.valueOf(copi.charAt(j));

            enteros[j] = Integer.parseInt(cad);

        }

        if (enteros.length < 2) {
            if (enteros[0] == 0) {
                color2.setBackground(Color.BLACK);
                //here
                List2.setSelectedItem("Negro");
            } else if (enteros[0] == 1) {
                color2.setBackground(cafe());
                List2.setSelectedItem("Cafe");
            } else if (enteros[0] == 2) {
                color2.setBackground(Color.RED);
                List2.setSelectedItem("Rojo");
            } else if (enteros[0] == 3) {
                color2.setBackground(Color.ORANGE);
                List2.setSelectedItem("Naranja");
            } else if (enteros[0] == 4) {
                color2.setBackground(Color.YELLOW);
                List2.setSelectedItem("Amarillo");
            } else if (enteros[0] == 5) {
                color2.setBackground(Color.GREEN);
                List2.setSelectedItem("Verde");
            } else if (enteros[0] == 6) {
                color2.setBackground(Color.BLUE);
                List2.setSelectedItem("Azul");
            } else if (enteros[0] == 7) {
                color2.setBackground(violeta());
                List2.setSelectedItem("Violeta");
            } else if (enteros[0] == 8) {
                color2.setBackground(Color.GRAY);
                List2.setSelectedItem("Gris");
            } else if (enteros[0] == 9) {
                color2.setBackground(Color.WHITE);
                List2.setSelectedItem("Blanco");
            }
            //System.out.println(color2 + "  " + color + "  " + color3);
        } else {

            if (enteros[0] == 0) {
                color1.setBackground(Color.BLACK);
                //here
                List1.setSelectedItem("Negro");
            } else if (enteros[0] == 1) {
                List1.setSelectedItem("Cafe");
                color1.setBackground(cafe());
            } else if (enteros[0] == 2) {
                color1.setBackground(Color.RED);
                List1.setSelectedItem("Rojo");
            } else if (enteros[0] == 3) {
                color1.setBackground(Color.ORANGE);
                List1.setSelectedItem("Naranja");
            } else if (enteros[0] == 4) {
                color1.setBackground(Color.YELLOW);
                List1.setSelectedItem("Amarillo");
            } else if (enteros[0] == 5) {
                color1.setBackground(Color.GREEN);
                List1.setSelectedItem("Verde");
            } else if (enteros[0] == 6) {
                color1.setBackground(Color.BLUE);
                List1.setSelectedItem("Azul");
            } else if (enteros[0] == 7) {
                color1.setBackground(violeta());
                List1.setSelectedItem("Violeta");
            } else if (enteros[0] == 8) {
                color1.setBackground(Color.GRAY);
                List1.setSelectedItem("Gris");
            } else if (enteros[0] == 9) {
                color1.setBackground(Color.WHITE);
                List1.setSelectedItem("Blanco");
            }

            if (enteros[1] == 0) {
                color2.setBackground(Color.BLACK);
                //here
                List2.setSelectedItem("Negro");
            } else if (enteros[1] == 1) {
                color2.setBackground(cafe());
                List2.setSelectedItem("Cafe");
            } else if (enteros[1] == 2) {
                color2.setBackground(Color.RED);
                List2.setSelectedItem("Rojo");
            } else if (enteros[1] == 3) {
                color2.setBackground(Color.ORANGE);
                List2.setSelectedItem("Naranja");
            } else if (enteros[1] == 4) {
                color2.setBackground(Color.YELLOW);
                List2.setSelectedItem("Amarillo");
            } else if (enteros[1] == 5) {
                color2.setBackground(Color.GREEN);
                List2.setSelectedItem("Verde");
            } else if (enteros[1] == 6) {
                color2.setBackground(Color.BLUE);
                List2.setSelectedItem("Azul");
            } else if (enteros[1] == 7) {
                color2.setBackground(violeta());
                List2.setSelectedItem("Violeta");
            } else if (enteros[1] == 8) {
                color2.setBackground(Color.GRAY);
                List2.setSelectedItem("Gris");
            } else if (enteros[1] == 9) {
                color2.setBackground(Color.WHITE);
                List2.setSelectedItem("Blanco");
            }
            //System.out.println(color + "  " + color2 + "  " + color3);
        }
    }

Bueno espero que este programa les sea de mucha utilidad, y puedan aprender de el.
Les dejo el proyecto completo, funcionando correctamente incluye el .jar
Saludos.
Writed by Ivan Luis Jimenez.

Comentarios

  1. Link de descarga del proyecto completo.
    https://drive.google.com/open?id=0B9Osc7LQ_i8Ca2Z5Qnk1SElKZkU

    ResponderBorrar

Publicar un comentario