Toon posts:

[JAVA] Double probleem verkeerde output

Pagina: 1
Acties:
  • 90 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi,

Ik ben dit blok gestart met het vak JAVA, het wil wel aardig lukken alleen ik doe iets verkeerd en ik zie het errug over het hoofd. Het zal wel een van de JAVA principes zijn die ik nog niet onder de knie heb. Voor mijn programmeer-ervaring heb ik alles goed, wel heb ik een vermoeden dat het probleem zit in de Double class.

Het probleem is als volgt, ik heb een programmaatje geschreven die freebeez pasjes kan aanmaken enzo en je kunt erop sparen en betalen. Alles werkt naar behoren alleen de output klopt niet als ik bijvoorbeeld iets betaal van 500 euro d.m.v. het invoeren van een editboxje gaat er 1000 euro van het pasje af. Nu is dit makkelijk op te lossen om het door 2 te delen, maar dat is niet een normale oplossing ik zou graag willen weten wat ik fout doe. Hier komt een hele riedel aan code. Ik heb ook nog wel wat code waar het frame ophangt die post ik wel als dat nodig is.

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
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
package beefreezapp;
import java.text.*;
public class BeefreezPas
{
    public BeefreezPas() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    //Variabelen
  private double myBedrag;
  private String MyNaam=new String();
  private int myGespaard;
  private int myBetaald;

  //Constructors
  public BeefreezPas(String InvoerNaam)
  {
    MyNaam=InvoerNaam;
    myBedrag=0;
    myGespaard=0;
    myBetaald=0;
  }

  public BeefreezPas(String InvoerNaam,double gespaard)
  {
    MyNaam=InvoerNaam;
    myBedrag=gespaard;
    myGespaard=1;
    myBetaald=0;
  }

  public String toString()
  { DecimalFormat df = new DecimalFormat("0.00");
    return "Het gespaarde bedrag is: " + df.format(myBedrag) + "\n" +
           "Naam: " + MyNaam + "\n" +
           "Aantal keer gespaard: " + myGespaard + "\n" +
           "Aantal keer betaald: " + myBetaald + "\n";
  }

  //Methods
  public double getMyBedrag()
  {
    return myBedrag;
  }

  public int getMyBetaald()
  {
    return myBetaald;
  }

  public int getMyGespaard()
  {
    return myGespaard;
  }

  public String getMyNaam()
  {
    return MyNaam;
  }

  public void setMyNaam(String MijnNaam)
  {
    MyNaam = MijnNaam;
  }

  public void spaar(double liters)
  {
    myBedrag=myBedrag+(liters*0.05);
    myGespaard++;
  }

  public boolean betaal(double bedrag)
  {
    myBedrag=myBedrag-bedrag;
    myBetaald++;
    return true;
  }

    private void jbInit() throws Exception {
    }
}


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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
package beefreezapp;

import java.lang.*;
import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.*;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Beefreezframe extends JFrame
{
    //GUI objecten
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();
    JButton btnInitialiseer = new JButton();
    JButton BtnBetaal = new JButton();
    JTextField tfA = new JTextField();
    JTextField tfB = new JTextField();
    JButton BtnSpaar = new JButton();
    JTextField tfC = new JTextField();
    JTextField EditNaam = new JTextField();
    JTextField EditBedrag = new JTextField();

    //Variabelen
    public BeefreezPas pasA;
    public BeefreezPas pasB;
    public BeefreezPas pasC;
    JTextField jTextField1 = new JTextField();
    JTextField EditNaamSpaar = new JTextField();
    JTextField EditLiters = new JTextField();

    //Constructor
    public Beefreezframe()
    {
      try
      {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        jbInit();
      }
      catch (Exception exception)
      {
        exception.printStackTrace();
      }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */

    //Methods
    private void jbInit() throws Exception
    {
      contentPane = (JPanel) getContentPane();
      contentPane.setLayout(null);
      setSize(new Dimension(400, 300));
      setTitle("Frame Title");
      btnInitialiseer.setBounds(new Rectangle(139, 122, 98, 25));
      btnInitialiseer.setText("Initialiseer");
      btnInitialiseer.addActionListener(new
      Beefreezframe_btnInitialiseer_actionAdapter(this));
      BtnBetaal.setBounds(new Rectangle(285, 164, 73, 25));
      BtnBetaal.setText("Betaal");
      BtnBetaal.addActionListener(new Beefreezframe_BtnBetaal_actionAdapter(this));
      tfA.setText("");
      tfA.setBounds(new Rectangle(10, 23, 378, 21));
      tfB.setText("");
      tfB.setBounds(new Rectangle(12, 56, 376, 21));
      BtnSpaar.setBounds(new Rectangle(288, 229, 73, 25));
      BtnSpaar.setText("Spaar");
      BtnSpaar.addActionListener(new Beefreezframe_jButton3_actionAdapter(this));
      tfC.setText("");
      tfC.setBounds(new Rectangle(9, 91, 382, 21));
      EditNaam.setText("");
      EditNaam.setBounds(new Rectangle(12, 156, 261, 21));
      EditBedrag.setText("");
      EditBedrag.setBounds(new Rectangle(12, 182, 258, 21));
      EditBedrag.addActionListener(new Beefreezframe_EditBedrag_actionAdapter(this));
      EditNaam.addActionListener(new Beefreezframe_EditNaam_actionAdapter(this));
      BtnBetaal.addActionListener(new Beefreezframe_BtnBetaal_actionAdapter(this));
      jTextField1.setBounds(new Rectangle(12, 182, 258, 21));
      EditNaamSpaar.setText("");
      EditNaamSpaar.setBounds(new Rectangle(13, 215, 258, 21));
      EditNaamSpaar.addActionListener(new
                                      Beefreezframe_jTextField2_actionAdapter(this));
      EditLiters.setBounds(new Rectangle(14, 248, 259, 21));
      contentPane.add(tfB);
      contentPane.add(tfC);
      contentPane.add(tfA);
      contentPane.add(btnInitialiseer);
      contentPane.add(EditNaam);
      contentPane.add(EditBedrag);
      contentPane.add(BtnBetaal);
      contentPane.add(jTextField1);
      contentPane.add(EditNaamSpaar);
      contentPane.add(EditLiters);
      contentPane.add(BtnSpaar);
    }

    //Main method
    public static void main(String[] arg)
    {

    }

    public void btnInitialiseer_actionPerformed(ActionEvent e)
    {
      this.pasA=new BeefreezPas("Yvonne");
      this.pasB=new BeefreezPas("Nicolette",100.00);
      this.pasC=new BeefreezPas("Lennart",150.00);

      tfA.setText(pasA.toString());
      tfB.setText(pasB.toString());
      tfC.setText(pasC.toString());
    }

    public void BtnSpaar_actionPerformed(ActionEvent e)
    {
      if (EditNaamSpaar.getText().equalsIgnoreCase("Yvonne"))
      {
        pasA.spaar(Double.parseDouble(EditLiters.getText()));
        tfA.setText(pasA.toString());
      }
      if (EditNaamSpaar.getText().equalsIgnoreCase("Nicolette"))
      {
        pasB.spaar(Double.parseDouble(EditLiters.getText()));
        tfB.setText(pasB.toString());
      }
      if (EditNaamSpaar.getText().equalsIgnoreCase("Lennart"))
      {
        pasC.spaar(Double.parseDouble(EditLiters.getText()));
        tfC.setText(pasC.toString());
      }
    }

    public void BtnBetaal_actionPerformed(ActionEvent e)
    {
      if (EditNaam.getText().equalsIgnoreCase("Yvonne"))
      {
        pasA.betaal(Double.parseDouble(EditBedrag.getText())/2);
        tfA.setText(pasA.toString());
      }
      if (EditNaam.getText().equalsIgnoreCase("Nicolette"))
      {
        pasB.betaal(Double.parseDouble(EditBedrag.getText())/2);
        tfB.setText(pasB.toString());
      }
      if (EditNaam.getText().equalsIgnoreCase("Lennart"))
      {
        pasC.betaal(Double.parseDouble(EditBedrag.getText())/2);
        tfC.setText(pasC.toString());
      }
    }

    public void EditBedrag_actionPerformed(ActionEvent e)
    {

    }

    public void EditNaam_actionPerformed(ActionEvent e)
    {

    }

    public void jTextField2_actionPerformed(ActionEvent e) {

    }
}


class Beefreezframe_jTextField2_actionAdapter implements ActionListener {
    private Beefreezframe adaptee;
    Beefreezframe_jTextField2_actionAdapter(Beefreezframe adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jTextField2_actionPerformed(e);
    }
}


class Beefreezframe_EditNaam_actionAdapter implements ActionListener
{
  private Beefreezframe adaptee;
  Beefreezframe_EditNaam_actionAdapter(Beefreezframe adaptee)
  {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e)
  {
    adaptee.EditNaam_actionPerformed(e);
  }
}

class Beefreezframe_EditBedrag_actionAdapter implements ActionListener
{
  private Beefreezframe adaptee;
  Beefreezframe_EditBedrag_actionAdapter(Beefreezframe adaptee)
  {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e)
  {
    adaptee.EditBedrag_actionPerformed(e);
  }
}


class Beefreezframe_BtnBetaal_actionAdapter implements ActionListener
{
  private Beefreezframe adaptee;
  Beefreezframe_BtnBetaal_actionAdapter(Beefreezframe adaptee)
  {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e)
  {
    adaptee.BtnBetaal_actionPerformed(e);
  }
}

class Beefreezframe_jButton3_actionAdapter implements ActionListener
{
  private Beefreezframe adaptee;
  Beefreezframe_jButton3_actionAdapter(Beefreezframe adaptee)
  {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e)
  {
    adaptee.BtnSpaar_actionPerformed(e);
  }
}

class Beefreezframe_btnInitialiseer_actionAdapter implements ActionListener
{
  private Beefreezframe adaptee;
  Beefreezframe_btnInitialiseer_actionAdapter(Beefreezframe adaptee)
  {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e)
  {
    adaptee.btnInitialiseer_actionPerformed(e);
  }
}

[ Voor 3% gewijzigd door Verwijderd op 18-11-2004 06:42 ]


  • jAnO!
  • Registratie: Januari 2002
  • Laatst online: 01-05 18:22

jAnO!

lalalavanillevla

paar tips:

* gebruik de standaard naamconventies
* voeg java toe aan je code tag (in je post)
* post alleen de relevante code
* doe iets aan al die verschillende actionlisteners
* kijk eens naar MVC pattern
* kies tussen swing en awt (zou gaan voor swing)

When some people work at a place for ten years they get ten years of experience, other people work at a place for ten years and get one year of experience ten times.


  • dennisv
  • Registratie: Oktober 2003
  • Laatst online: 26-11-2025
Je voegt 2 keer een actionlistener aan de betaal knop toe. Op deze manier worden 2 events gegenereerd.

BtnBetaal.addActionListener(new Beefreezframe_BtnBetaal_actionAdapter(this));
BtnBetaal.addActionListener(new Beefreezframe_BtnBetaal_actionAdapter(this));

Ik sorteer dit soort code meestal op de objecten om dit soort problemen te voorkomen.

Succes met Java verder!

[ Voor 15% gewijzigd door dennisv op 18-11-2004 00:21 ]


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Tweede week van het tweede kwartaal op de universiteiten en gelijk tig java vragen, apart fenomeen :)

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


Verwijderd

Topicstarter
Ok het is nu half 7 's morgens ofzo maar ik denk idd dat het die twee actionlisteners zijn, het is gewoon een heel ander principe dan de voorgaande programmeertalen maar toch wel leuke taal verder, moet alleen goed mee omgaan. Ik heb nog geen les gehad in de verschillende Swing,AW dingetjes dus ik kan niet alles nog verwijderen weet van de helft nog niet wat het doet.
Maar iig bedankt mocht dit trouwens niet het probleem zijn kom ik erop terug.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17-05 17:19
Wat ik me afvraag is waarom men niet meteen uitlegt hoe een debugger werkt, of bij gebrek aan een debugger, hoe je kunt 'printf debuggen' ( excuse my French in dit java topic :) )

Zijn toch ook best wel belangrijke vaardigheden

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

De eerder voorgestelde IDE Eclipse heeft standaard debug mogelijkheden. (Step through code, into methode, over methode, to line, breakpoints).

Maak je hier geen gebruik van, kun je je code 'bezaaien' met System.out.println(String); outputs of voor uitgebreidere logging mogelijkheden, die ook later je applicatie kunnen laten loggen naar bijvoorbeeld bestand en op meerdere lagen, zie Log4J. (http://www.apache.org).

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:32

.oisyn

Moderator Devschuur®

Demotivational Speaker

En debug-topics zijn nog altijd niet toegestaan

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.