Calculador de resistencias de colores a valores y de valores a colores con 4 y 5 bandas (programado en JAVA)
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
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
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.
Calculador de resistencias de colores a valores y de valores a colores
calculadora de resistencia
programa que calcule la resistencia en colores
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Link de descarga del proyecto completo.
ResponderBorrarhttps://drive.google.com/open?id=0B9Osc7LQ_i8Ca2Z5Qnk1SElKZkU