Toon posts:

[Java] Textfield problemen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig om java te leren op school. Voor de toets die volgende week vrijdag heb ben ik nu alvast een beetje aan het oefenen.

Hier voor maak ik opdrachten vanuit het boek. De opdracht waar ik mee bezig ben is: schrijf een programma om twee getallen met een tekstvelden in te voeren. De getallen staan voor de afmetingen van een kamer en laten de oppervlakte van de kamer zien.

Nu heb ik de volgende code gemaakt:

Java:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class oppervlakteberekening extends Applet implements ActionListener {

    private Button Bereken;
    private TextField lengteField, breedteField, oppervlakteField;
    private Berekening mijnBerekening;

    public void init () {

        // Hier wordt het tekstveld "Geef lengte: " aangemaakt
        Label lengteLabel = new Label ("Geef lengte:");
        add (lengteLabel);

        lengteField = new TextField () ;
        add (lengteField);
        lengteField.addActionListener(this);

        //Hier wordt het tekstveld "Geef breedte: " aangemaakt
        Label breedteLabel = new Label ("Geef breedte:");
        add (breedteLabel);

        breedteField = new TextField () ;
        add (breedteField);
        breedteField.addActionListener(this);

        //Hier wordt de knop "Bereken" aangemaakt
        Bereken = new Button ("Bereken");
        add (Bereken);
        Bereken.addActionListener(this);

        //Hier wordt het tekstveld "Oppervlakte is: " aangemaakt
        Label oppervlakteLabel = new Label ("Oppervlakte is:");
        add (oppervlakteLabel);

        oppervlakteField = new TextField () ;
        add (oppervlakteField);
        oppervlakteField.addActionListener (this);

        mijnBerekening = new Berekening () ;
    }

    public void actionPerformed (ActionEvent event) {

        if (event.getSource() == lengteField) {

            float lengte = Integer.parseInt (lengteField.getText ());
            mijnBerekening.setLengte (lengte);
        }

        if (event.getSource () == breedteField) {

            float breedte = Integer.parseInt (breedteField.getText ());
            mijnBerekening.setBreedte (breedte);
        }

        if (event.getSource () == Bereken) {

            mijnBerekening.Bereken();
            oppervlakteField.setText(Float.toString(mijnBerekening.getOppervlakte()));
        }
    }
}

class Berekening {

    private float breedte;
    private float lengte;
    private float oppervlakte;

    public void Lengte (float setLengte) {

        lengte = setLengte;
    }

    public void Breedte (float setBreedte) {

        breedte = setBreedte;
    }

    public void Bereken() {

        oppervlakte = lengte * breedte;
    }

    public float getOppervlakte() {

        return oppervlakte;
    }
}


Nu heb ik steeds de volgende foutmelding als ik hem compileer:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
...\oppervlakteberekening.java:53: cannot resolve symbol
symbol  : method setLengte (float)
location: class Berekening
            mijnBerekening.setLengte (lengte);
                                      ^
...\oppervlakteberekening.java:59: cannot resolve symbol
symbol  : method setBreedte (float)
location: class Berekening
            mijnBerekening.setBreedte (breedte);
                                      ^
2 errors

Tool completed with exit code 1


Nu heb ik al iemand uit mijn klas gevraagd maar is ook niet uitgekomen. Kan iemand van jullie mij helpen met wat ik verkeerd doe. Als het kan ook even met een goede uitleg.

alvast bedankt _/-\o_

P.S.: Ik weet dat ik rare namen gebruik, maar ik ben nooit goed in namen te verzinnen

Verwijderd

Je hebt helemaal geen method setBreedte??? :?

Verwijderd

Topicstarter
Nu je het zegt, klopt ja... Dankje.

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 12-08 20:57

Macros

I'm watching...

Ook een beetje dom om parseInt te gebruiken als je een float wilt. Gebruik dan parseFloat.
Java:
1
float breedte = Integer.parseInt() 

"Beauty is the ultimate defence against complexity." David Gelernter


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Verder zou ik toch altijd setXXX gebruiken, dit voorkomt verwarring. Pas dus je class Berekening aan om de fout te fixen.

"The shell stopped unexpectedly and Explorer.exe was restarted."