Java - Funcion equals

 
Vista:
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 31/10/2018 02:44:36
Buenas.

Tengo una duda, y es que no se por que nunca evalua este caso:


Captura-de-pantalla-12

Siempre que lo ejecuto, me sale la ventana de dialogo, como si nunca evaluara el caso.

De antemano, Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Kabuto (1378 intervenciones) el 31/10/2018 11:45:11
¿Que tipo de dato devuelve el método getCodigoL()?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 31/10/2018 18:39:54
devuelve un vector de tipo String []
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Kabuto (1378 intervenciones) el 31/10/2018 19:41:05
Pues a priori debería funcionar, pero por si a caso, en lugar de llamar a ese metodo 10 veces dentro del for, llámalo una vez fuera para recoger el vector y luego lo recorres dentro del for.

Algo así:
1
2
3
String[] registros = registro.getCodigoL();
for (int i = 0; i < 10; i++) {
    if (textFieldId.getText().equals(registros[i])) {

Aunque solo sea para comprobar si hay alguna diferencia.

Otra opción sería modificar el metodo getCodigoL() para que en lugar de devolver un vector entero, le pases como argumento un entero como indice y te devuelva solo el String.
1
2
for (int i = 0; i < 10; i++) {
    if (textFieldId.getText().equals(registro.getCodigoL(i))) {

Por último, aunque diría que no tiene importancia, pero es otra cosa que puedes probar..
Tú para comparar el texto del JTextField lo encierras en doble parentesis y luego llamas a equals():
1
if ((textFieldId.getText()).equals(...)

Prueba a quitar ese parentesis, es decir, llama al método equals directamente a continuación de getText()
1
if (textFieldId.getText().equals(...)

Como digo, posiblemente esto no implique diferencia ninguna, pero a veces, quien sabe...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 31/10/2018 23:58:59
He creado una variable de tipo String llamada sCodigo, y le he dado el valor "0001".


String sCodigo="0001";

e hice lo siguiente:

if(textFieldId.getText().equals(sCodigo)){
....
}

Tambien hice:

if((textFieldId.getText()).equeals("0001"){
...
}

Obviamente en el textField digite: "0001"


Y aún así me sigue mostrando la ventana de diálogo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Kabuto (1378 intervenciones) el 01/11/2018 11:27:12
Que alucine..., pues no veo donde puede estar el problema...
Antes del if, prueba a mostrar en pantalla, ya sea por consola o en un JOptionPane, el String que te está devolviendo: textFieldId.getText()
Es para comprobar que sí está recogiendo el valor de ese campo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 01/11/2018 17:11:37
coloque lo siguiente:

JOptionPane.showMessageDialog(null, "Prueba: "+textFieldId.getText());

y al parecer no esta guardando lo que se digite en el textField, muestra lo siguinte:

Captura-de-pantalla-13

Lo probé en otros textField, y tampoco me muestra lo que digite.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Kabuto (1378 intervenciones) el 01/11/2018 19:38:42
Bueno, ahora ya se explica por qué no se cumplía la condición del equals().

Ahora hay que averiguar por qué no te llega la información de los campos. Y también es raro porque debería ser tan sencillo como lo has puesto.

Quizás sería necesario que publicases el código, o al menos parte de él, para ver cómo y dónde están declarados esos JTextField
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 01/11/2018 20:25:55
Adjunto el código y aclaro que estaba programando en eclipse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Kabuto (1378 intervenciones) el 01/11/2018 22:16:13
Ok, aún no he podido probarlo en Eclipse.
Pero echando un vistazo rápido he visto algo que parece ser el problema.

Antes de recoger el valor del campo JTextField, por algún motivo o por errror, pones su texto a null.
Por eso no recoges nada luego para poder comparar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void mouseClicked(MouseEvent arg0) {
    registro.guardarDatos(textFieldNombre.getText(), textFieldId.getText(),
        comboBoxDia.getSelectedItem().toString(), comboBoxMes.getSelectedItem().toString(),
        comboBoxAno.getSelectedItem().toString(), comboBoxDia_1.getSelectedItem().toString(),
        comboBoxMes_1.getSelectedItem().toString(), comboBoxAno_1.getSelectedItem().toString());
    textFieldNombre.setText(null);
    textFieldId.setText(null);
    comboBoxDia.setSelectedIndex(0);
    comboBoxMes.setSelectedIndex(0);
    comboBoxAno.setSelectedIndex(0);
    comboBoxDia_1.setSelectedIndex(0);
    comboBoxMes_1.setSelectedIndex(0);
    comboBoxAno_1.setSelectedIndex(0);
    int c=tablePrestamos.getModel().getColumnCount();
    String fila [] = new String[c];
    registro.fechas();
    JOptionPane.showMessageDialog(null, "Prueba: "+textFieldId.getText());
    for(int i=0;i<10; i++){
        if((textFieldId.getText()).equals("0001")){
            registro.setI(i);
            aux=true;
            break;
        }
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Funcion equals

Publicado por Marco (16 intervenciones) el 01/11/2018 23:35:46
Mmmmm, Si tiene razon, no habia caido en cuenta.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar