PDA

View Full Version : [JAVA] prob con equals()


foxmolder5
12-09-2004, 19:18
ho un campo JText e lo devo confrontare con un campo di un array di stringhe. la sintassi è

this.getNome(listaNomi[num]).equals(nome.getText())

ma mi viene sempre dato false,anche quando this.getNome(...) e nome.getText() rappresentano la stessa identica parola!

semucarusi
12-09-2004, 23:56
Nn ho capito molto bene il programma...:confused:

Cmq l'hai fatto l'overriding della equals ???

Frank1962
13-09-2004, 01:11
Originariamente inviato da foxmolder5
ho un campo JText e lo devo confrontare con un campo di un array di stringhe. la sintassi è

this.getNome(listaNomi[num]).equals(nome.getText())

ma mi viene sempre dato false,anche quando this.getNome(...) e nome.getText() rappresentano la stessa identica parola!
se devi confrontare 2 oggetti String il metodo corretto è (text1).compareTo(text2) ......nota che questo metodo non ritorna valori booleani bensi interi, quindi se vuoi sapere se le 2 stringhe sono uguali e vuoi usare qualche ciclo dovresti fare:

if( (text1).compareTo(text2) == 0 ) {
//sono uguali
} else {
//non sono uguali
}

....in alternativa puoi ridefinire il metodo equals anche se lo trovo + lungo dato che esiste un metodo ad hoc per quello che vuoi fare tu ;)

anx721
13-09-2004, 02:20
Il metodo equals va benissimo per sapere se due stringhe sono uguali o meno, ed è già overriden nella classe String. Puo essere un problema di maiuscole minuscole? O di spazi? Hai provato a stampare le stringhe che confronti circondate da apici per verificare la presenza di spazi iniziali o finali? :

System.out.println("'" + stringa + "'");

Frank1962
13-09-2004, 03:49
Originariamente inviato da anx721
Il metodo equals va benissimo per sapere se due stringhe sono uguali o meno, ed è già overriden nella classe String.
hai ragione ;)


cmq prova a fare un casting di sicurezza:

this.getNome((String)listaNomi[num]).equals((String)nome.getText())

foxmolder5
13-09-2004, 09:11
ho usato compareTo ed è funzionato tutto :-) grazie

anx721
13-09-2004, 12:59
Originariamente inviato da foxmolder5
ho usato compareTo ed è funzionato tutto :-) grazie

Si potrebbe vedere il codice completo che non funzionava?

foxmolder5
13-09-2004, 13:12
ora ce l'ho su un altro pc e ci metterei 1 pò a portarlo.quale potrebbe essere il prob?ho importato swing , swing.event,awt e wat.event.

anx721
13-09-2004, 13:19
non c'entra con gli import, sicuramente c'era qlcke altro errore...equals deve funzionare se le stringhe sono uguali

foxmolder5
13-09-2004, 20:53
dato che ci sono vi chiedo un aiuto x 1 altro problema.ho delle tab (dimensione 600x400) ed al loro interno vorrei mettere un pulsante e casella di testo (grandi al max 50X10 per ognuno).come devo fare?creare un pannello + piccolo all'interno del tab e poi metterci i due oggetti?non so ditemi voi,perchè sono alle prime armi e devo ancora familiarizzare con la gui java.

anx721
13-09-2004, 21:34
Si puoi creare un pannello con i due elementi e aggiungerlo, ovviamente dipende da cosa altro c'è nel tab prr impostare il layout nel modo in cui vuoi tu.

foxmolder5
13-09-2004, 22:01
la pagina del tab è vuota.vorrei metterci solo un pulsante e Jtextfield per il testo e ho chiesto aiuto a voi perchè se l'inserisco questi hanno dimensioni della pagina ed invece io vorrei dargli dimensioni minori.

anx721
13-09-2004, 22:13
Ci sono vari modi per ottenere quello che vuoi lavorando con i layout, fino a settare manualemnte dimensioni e posizione. Spiega chiaramente cosa deve esserci nella tab: solo il pulsante e il campo di testo? Poi solo spazio vuoto? Li vuoi al centro, in alto, in basso? O ci aiungerai deli altri elementi in seguito?

foxmolder5
13-09-2004, 22:49
ho una tab vuota.al suo interno voglio metterci ,centrati, un pulsante e un JTextField di dimensioni (40,10).oltre a questi nella tab non deve esserci nulla.può anche esserci solo spazio senza nè immagini nè nulla.

anx721
14-09-2004, 00:09
Ecco un'implementazione del pannello che dovresti aggiungere al tuo tab per ottenere un pulsante e un campo di testo centrati verticalmente e orizzontalmente e di uguale dimensione; se vuoi cambiare la dimensione decommenta la riga commentata mettendo delle dimensioni:


class MyPanel extends JPanel{
JButton pulsante = new JButton("pulsante");
JTextField field = new JTextField(15);

public MyPanel(){
setLayout(new GridBagLayout());
JPanel p = new JPanel(new GridLayout(1, 2, 10, 5));
//p.setPreferredSize(new Dimension(200, 20));
p.add(pulsante);
p.add(field);
add(p);
}
}