10. marts 2003 - 00:48Der er
8 kommentarer og 1 løsning
equals i if-sætning
Hejsa, jeg har lidt problemer med en if-sætning. Jeg tror det er fordi jeg ikke helt ved hvordan equals fungerer at jeg har problemet.
Min if-sætning ser således ud: if(jTFAddFNavn.getText().equals("") || jTFAddFNavn.getText().equals("Du skal angive et navn")) { jTFAddFNavn.setText("Du skal angive et navn"); jTFAddFNavn.requestFocus(); }
Når jeg opretter textfeltet siger jeg jTFAddFNavn.setText(""); Og når jDialogen med feltet åbnes requester jeg fokus på dette textfelt. Men jeg kommer aldrig ind i if-sætningen selvom jeg bare ikke indtaster noget i det, hvordan kan det være?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hej Rune, Der er jo ikke nogen null værdi i teksfeltet fra start af da jeg siger: jTFAddFNavn.setText(""); ved oprettelsen af tekstfeltet. Jeg testede lige med null for en sikkerhedsskyld, desværre uden resultat :o(
Jeg har nu fået det løst, men hvorfor det ikke virkede med equals eller compareTo det fatter jeg ikke. Jeg satte istedet en boolean variabel ind og det funkede med det samme, så nu ser koden sådan ud:
boolean ikkeTom=true;
if(jTFAddKPNavn.getText().equals("") || jTFAddKPNavn.getText().equals("Du skal angive et navn")) { jTFAddKPNavn.setText("Du skal angive et navn"); jTFAddKPNavn.requestFocus(); ikkeTom=false; }
if(m.findesKP(kPListe, jTFAddKPNavn.getText(), "")) //Findes en person med det indtastede navn i forvejen? { jTAAddKPNoter.setText("Et person med navnet "+jTFAddKPNavn.getText()+" findes i forvejen.\nVælg nyt navn"); jTAAddKPNoter.setText(""); jTFAddKPNavn.requestFocus(); }
else if(ikkeTom) { date = new Date(); KontaktPerson temp = new KontaktPerson(f, jTFAddKPStilling.getText(), jTFAddKPNavn.getText(),jTFAddKPTlf.getText(),jTFAddKPMobil.getText(), jTFAddKPEmail.getText(), jTAAddKPNoter.getText(), df.format(date)); kPListe.add(temp); jTFAddKPNavn.setText(""); jTFAddKPStilling.setText(""); jTFAddKPTlf.setText(""); jTFAddKPMobil.setText(""); jTFAddKPEmail.setText(""); jTAAddKPNoter.setText(""); jTFAddKPNavn.requestFocus(); ikkeTom=true; }
compareTo virker. Men jeg skulle måske have vist det på denne måde istedet for, jeg overså at du initialiserede dit JTextField med en værdi. Sorry - men nedenstående SKAL virke i denne situation.
String s = "Du skal angive et navn"; if(s.compareTo(jTFAddKPNavn.getText()) == 0) System.out.println("Der skal skrives et navn!!);
Bare rolig jeg havde set din streng s ikke sammenlignede på "" eller "Du skal angive et navn". Men det virkede stadigvæk ikke, det er mega sort :o( Men jeg takker i hvert fald på forsøgene, nu står den fremover på true/false i sådanne situationer..
Mvh Torben
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.