Java : domme fout in string functie ?

Pagina: 1
Acties:

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 25-07 21:12
heb een stukje code , die niet echt wordt uitgevoerd als de focus van het textField wordt gehaald.. tenminste.. ik zie het niet..

String mltext = textField1.getText();
if (mltext == "")
{
textField1.setText("0");
}

de textField1 staat standaard op "0" .. als ik hem leeg maak , en van het textField af ga, dan wordt mijn textField niet op "0" geset.. hoe ken dat ?

| www.everythingisspiritual.com | www.mosaic.org |


Verwijderd

in welke context staat dit stukje code, wordt dit uitgevoerd na een event?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Over het algemeen zitten dit soort fouten tussen het scherm en het toetsenbord ;)..

Ten eerste gaan string vergelijkingen ietsje anders ->
Java:
1
mltext.equals("")

of (om eventuele nullpointer exceptions te voorkomen)
Java:
1
"".equals(mltext)


Daarnaast moet dit stuk code wel worden aangeroepen waneer de focus van het textfield wordt gehaald. Dat is namelijk aan dit stukje code niet te zien ;).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Kun je niet beter controleren of de lengte van mltext 0 is? (meest gangbare oplossing om te controleren of iets leeg is dacht ik)

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 15:48
Moet je bij het verliezen van de focus ff een stringetje naar de prompt schrijven (System.out.println("FOcus kwijt"); oid)

Java event handling kan soms wel eens anders werken als je denkt of verkeerd geimplementeerd zijn, wat lang niet altijd tot foutmeldingen leidt, maar wel ervoor zorgt dat er nix gebeurt met je events.

Dit is mijn standaard manier van java event debugging...

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD