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