webForumDet fria alternativet

JFieldText.getText()

2 svar · 483 visningar · startad av Poppe25

Poppe25Medlem sedan apr. 2002255 inlägg
#1

Jag har en JFieldText-komponent, field, och vill hämta en siffra från detta fält. Om fältet är tomt vill jag att Klass(2) ska initieras, om fält innehåller en siffra ska Klass(siffra) initieras.

Hur gör jag för att undivka NullPointerException som uppstår om fältet är tomt? Eller om det är en bokstav och inte en siffra?

  String str1="";
  if(e.getSource()==and_knapp)
  {
    str1=field.getText();
    int t = Integer.parseInt(str1);
    if( t == 0) och = new Klass(2);
    else och = new Klass(t);
  }
aasahMedlem sedan mars 20034 471 inlägg
#2

Re: JFieldText.getText()

Poppe25 skrev:

Hur gör jag för att undivka NullPointerException som uppstår om fältet är tomt? Eller om det är en bokstav och inte en siffra?

NullPointer undviks med

javas doc skrev:

setText
public void setText(String t)
Sets the text of this TextComponent to the specified text. If the text is null or empty, has the effect of simply deleting the old text.

Ingen siffra kan enkelt kollas med try and catch.

//I början vid initialiseringen av fälten sätt din textyta till
textField.setText(" "); //Eller vad du vill.... nu är den inte null
...
String str1 = "";
if(e.getSource()==and_knapp) {
   str1=field.getText();
   int t = -1;
   try {
        t = Integer.parseInt(str1);
   }
   catch(Exception e) {
      t = 0;
   }
   if( t == 0) 
      och = new Klass(2);
   else och = new Klass(t);
}

PS Jag skulle undvika att kalla en variabel för och även om du alltid namnger på engelska. 'och' ser alldeles för mycket ut som ett svenskt 'och', vilket förvirrar när man läser koden.

spangoMedlem sedan juni 20008 205 inlägg
#3

bah, jag blev förekommen...

130 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)