[Java] JTextField getText wel en JFormattedTextField niet

Pagina: 1
Acties:

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Ik heb een JFormattedTextField in mijn programma, als volgd:

Dit is de code voor het maken van de TextField:
Java:
1
2
3
4
JFormattedTextField arttxt;

arttxt = new JFormattedTextField(createFormatter("#-S#####H"));
        arttxt.setValue(null);


Dit is de maskformatter (knip en plak van Sunsjava)
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected MaskFormatter createFormatter(String s)
    {
    MaskFormatter formatter = null;
    try
        {
          formatter = new MaskFormatter(s);
        }
        catch (java.text.ParseException exc)
        {
          System.err.println("formatter is bad: " + exc.getMessage());
      System.exit(-1);
    }
    return formatter;
  }


Dit is de code om de waarde die is ingevoerd op te halen en even simpel weer te geven:
Java:
1
2
String zoekje = arttxt.getText();
                System.out.println(zoekje);


Nu krijg ik een nullpointerexception en een heleboel andere regels eronder. Het rare is alleen dat als ik hier een TextField van maak, zonder MaskFormatter ik wel gewoon de waarde kan ophalen.

Ook is het zo dat als ik in het eerste stuk code de setText gebruik, dit gewoon werkt.

Doe ik iets fout?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-05 20:29

Robtimus

me Robtimus no like you

Geef de precieze exception met de hele stacktrace (die regels eronder) eens?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 16-05 11:22
Misschien moet je even ipv een setValue(null) een setValue("") doen?. En vangt JTextField dit wel af en JFormattedTextField niet?

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Als ik niks invoer en dan de inhoud wil ophalen dan geeft hij de gedefinieerde waarde terug (hier gedefinieerd als output):

Begin output:
-S
eind output:

Nu heb ik even wat veranderd, ik heb gezien dat de getText methode in een loop stond, iedere keer als die opnieuw begon kon die niet aan. Nu heb ik hem erbuiten geplaatst en nu werkt het wel.


Stukje van de werkende code:

Java:
1
2
3
4
5
6
7
8
9
10
11
if ("zoek".equals(e.getActionCommand()))
        {
      int rijtjes = table.getRowCount();
      
            String zoekje = arttxt.getText();
            System.out.println(zoekje);

            for (int i = 0; i < rijtjes; i++)
            {
                Object artnr = table.getValueAt(i,0);
        String artikel = artnr.toString();