Foro sobre Java SE > erco - comparacion entre Jlabel
bueno lo que yo te recomendaría es que hicieras una clase que extienda (herede) de JLabel, y manejar un atributo extra (variable) por ejemplo un int que te diga si la imagen es una aspa o un icono de error.
o bien podias usar el mismo JLabel y usar el nombre de el componente a traves de los métodos setName(String nombre) y getName(); que si tienes aspa podes poner setName("aspas");
o si es error setName("error");
de ahi usas el metodo getName() para compara ejemplo if(getName().equals("error"){
//tal cosa
}
Veo excepcionalmente complicado comparar dos imágenes de dos JLabel, solo para saber si el estado de sus instancias respectivas es la misma.
Supongo que la misma condición que se use para cambiar el icono, pueda utilizarse para definir la comparación.
Cuando se tiene una dificultad en el diseño, y se precisa ayuda, es más conveniente explicar qué se quiere obtener, a partir de dónde se está.
Lo que no suele obtener resultados es plantear una "solución", y cuando no funciona, pedir ayuda.
gracias amigo jhosep, probare la solución planteada, y bueno, tomare en cuenta el comentario del amigo choces.
bueno explicare nuevamente el problema y la forma en la que estoy trabajando.
resulta que estoy creando un formulario, en el cual tengo tres cajas de texto, nombre(max. 25 digitos), edad(igual a 2 digitos), y un boton guardar el cual esta con una propiedad boton.setEnable(false).
como vemos e colocado ciertas restricciones en cuanto al ingreso de los datos, la validacion de los datos lo hago mediante un evento KeyTyped.
ahora al costado de cada caja de texto he colocado un jLabel, jLabel nombre y jLabel edad. estos no poseen ningun tipo de contenido, osea ni texto ni imagen.
en cada caja de texto hay un evento focuslost, el cual se encarga de validar que el contenido de cada caja texto cumpla con las condiciones antes mencionadas para cada caja de texto.
y bueno, el evento focuslost de la caja de texto nombre, lo que hace es: si cumple la condicion llena al jlable nombre con una imagen aspa de esta forma:
jlable_nombre.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/aspa 16x16.png")));
caso contrario, lo llena con una imagen de admiracion:
jlable_nombre.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/admiracion_16x16.png")));
y lo mismo hace con el evento focuslos de la caja de texto edad:
if (txt_edad.getText().length() == 2) {
jlabel_edad.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/aspa 16x16.png")));
}
else {
jlabel_edad.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/admiracion_16x16.png")));
}
y por ultimo, el problema tiene dado a la hora de habilitar el boton guardar, que si recordamos inicia en un estado setEnable(false), pero quiero habilitarlo siempre y cuando se hayan cumplido las restricciones de las cajas de texto.
la pregunta es; como saber que ya se cumplieron todas las restricciones, lo que yo habia pensado era en hacer una comparacion entre el jlabel_nombre y el jlabel_edad, y si los dos poseian el icono aspa, entonces el boton guardar se habilitaria.
si existiera alguna otra forma de como validar y hacer que me salga una imagen indicando que lo que se ingreso es correcto(aspa) me gustaria recibir recomendaciones, bueno espero haber sido claro.
agradecere sus apoyo
@jhosep ya te ha proporcionado la idea principal: usar una variable que contiene la condición.
Puesto que las condiciones se generan en los JTextField (si no he leído mal), podrías crear una variable, en cada uno con un método público:
private boolean valido;
public boolean isValido(){ return valido};
A esa variable le asignas en cada JTextField el valor que corresponda a la condición.
Cuando sea necesario puedes leer isValido() de ambos JTextField, y si ambos son true, activar el botón.
ya lo logre, gracias amigos!!!
que bien me alegro por vos.
hola chavos tengo una practica donde tengo que poner lables y hacer que tomen un color y compararlos colores y que en otro lable me diga si son iguales o diferentes. si me pudieran ayudar selos agradeceria
Guenas.
"Hola gente. Tengo una práctica donde tengo que poner algún Label con un color determinado, compararlo con otro Label y que me diga si los colores son iguales o diferentes.
Si me pudieran ayudar se lo agradecería."
Quizá así alguien te responda. Si no entiendes lo que te digo deja Java y prueba con Español.
Un saludo,
Paposo
Hola amigos,..
sucede que tengo un jlabel el cual tiene como icono(imagen) un aspa, y otro que tiene un icono(imagen) error, en un momento dado ambas imágenes tendrán el mismo icono, ya sea aspa o error.
lo que busco es hacer una comparacion:
si ambas tiene el icono aspa hacer una accion x, osea comparar si los jlabel, tiene los iconos iguales,
agradeceria sus ayuda