[java] JTextField.getText() levert java.lang.NullPointer op

Pagina: 1
Acties:

  • spone
  • Registratie: Mei 2002
  • Niet online
Beste mensen,

Ben nu bezig met een opdracht voor school, maar kom er niet uit na het veelvuldig op verschillende manieren geprobeerd te hebben. Eerst even mijn code:

MyFrame:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class MyFrame extends JFrame{
  public BankRekening br;
  public JTextField tf;
  public MyController mc;

  JLabel jl1 = new JLabel("Naam: ",JLabel.CENTER);
  JLabel jl2 = new JLabel("Adres: ",JLabel.CENTER);
  JLabel jl3 = new JLabel("Plaats: ",JLabel.CENTER);
  JLabel jl4 = new JLabel("Saldo: ",JLabel.CENTER);

  public MyFrame(BankRekening br) {

    this.br = br;
    mc = new MyController(br,this);

    Container c = getContentPane();
    c.setLayout(new GridLayout(5,1));
    c.add(jl1);
    c.add(jl2);
    c.add(jl3);
    c.add(jl4);

    JPanel jp = new JPanel();
    JTextField tf = new JTextField("120.00",6);
    JButton bOpnemen = new JButton("Opnemen");
    bOpnemen.addActionListener(mc);
    JButton bStorten = new JButton("Storten");
    bStorten.addActionListener(mc);
    jp.add(tf);
    jp.add(bOpnemen);
    jp.add(bStorten);
    c.add(jp);


    setTitle("Prutbank®");
    setLocation(100,100);
    setSize(300,300);

    jl1.setText("Naam: "+br.getNaam());
    jl2.setText("Adres: "+br.getAdres());
    jl3.setText("Plaats: "+br.getPlaats());
    jl4.setText("Saldo: "+br.getSaldo());

    System.out.println("Waarde vak: "+tf.getText());

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    pack();
    }
}


MyController:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.awt.event.*;
import javax.swing.*;

public class MyController implements ActionListener{
    private BankRekening br;
    private MyFrame mf;

    public MyController(BankRekening br, MyFrame mf)
    {
        this.mf = mf;
        this.br = br;
    }

    public void actionPerformed(ActionEvent e){
        if (e.getActionCommand().equals("Opnemen"))
            {
                    double bedrag = Double.parseDouble(mf.tf.getText());
                    br.neemOp(bedrag);
                    mf.jl1.setText("Naam: "+br.getNaam());
                    mf.jl2.setText("Adres: "+br.getAdres());
                    mf.jl3.setText("Plaats: "+br.getPlaats());
                    mf.jl4.setText("Saldo: "+br.getSaldo());
            }
}
}


Wanneer ik nu in MyController:17 de regel
code:
1
double bedrag = Double.parseDouble(mf.tf.getText());
probeer uit te voeren, komt java met een java.lang.nullpointer exception in de dosbox :'(

Hoe krijg ik java zover dat ie de waarde van mf.tf.getText() als een double aanlevert aan br.neemOp(bedrag) ?

[ Voor 20% gewijzigd door spone op 15-12-2004 21:23 ]

Game: i5-14600K, 32GB DDR5-6000, RTX 5070 Ti; Laptop: MacBook Pro M1 Pro 14" 16/512; Server: R9-7950X, 96GB DDR5-5600; Woonkamer: Mac Mini M4 16/256


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Kijk nu eens heel goed naar die NullPointerException. Hierbij staat een stacktrace waarin je exact kunt zien waar het is misgegaan. Nu heb je genoeg informatie om je probleem op te lossen.


nog een kleine hint:

code:
1
2
3
4
5
6
7
public JTextField tf;

public MyFrame(BankRekening br) {
     ....
     JTextField tf = new JTextField("120.00",6);
     ....
}


ZIe je het?

[ Voor 37% gewijzigd door Alarmnummer op 15-12-2004 21:13 ]


  • spone
  • Registratie: Mei 2002
  • Niet online
code:
1
2
java.lang.NullPointerException
        at MyController.actionPerformed(MyController.java:17)


Dat kon ik em ook wel vertellen, zover was ik al :) Bedankt iig voor je reactie!

Game: i5-14600K, 32GB DDR5-6000, RTX 5070 Ti; Laptop: MacBook Pro M1 Pro 14" 16/512; Server: R9-7950X, 96GB DDR5-5600; Woonkamer: Mac Mini M4 16/256


  • spone
  • Registratie: Mei 2002
  • Niet online
omg ja, ik zie het.... |:(

Hoe had ik zo stom kunnen zijn...mijn dank is groot _/-\o_ !

Game: i5-14600K, 32GB DDR5-6000, RTX 5070 Ti; Laptop: MacBook Pro M1 Pro 14" 16/512; Server: R9-7950X, 96GB DDR5-5600; Woonkamer: Mac Mini M4 16/256


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik ga verder niet in op je ontwerp.. maar gebruik geen public fields... zwaar verboden..

  • spone
  • Registratie: Mei 2002
  • Niet online
Alarmnummer schreef op woensdag 15 december 2004 @ 21:18:
Ik ga verder niet in op je ontwerp.. maar gebruik geen public fields... zwaar verboden..
i know, had het er alleen ingezet om te kijken of het werkte :*)

Game: i5-14600K, 32GB DDR5-6000, RTX 5070 Ti; Laptop: MacBook Pro M1 Pro 14" 16/512; Server: R9-7950X, 96GB DDR5-5600; Woonkamer: Mac Mini M4 16/256

Pagina: 1