[java] melding maken in Applet

Pagina: 1
Acties:

  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Ik heb een applet gemaakt die saldo berekend op een rekening.
Alleen nu zit ik met een probleempje, ik krijg het niet voor elkaar als er een - saldo uitkomt dat je een melding op het scherm krijgt "Negatief Saldo".
Misschien kan 1 van jullie mij helpen...
Mijn Sourcecode:

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
package bankrekening;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;


public class rekening extends Applet
{
TextField saldo, invoerVak;
Button rekenKnop;

public void init() {
  setLayout(null);
  invoerVak = new TextField(12);
  invoerVak.setBounds(55,10,70,20);
  rekenKnop = new Button("Bereken Saldo");
  rekenKnop.addActionListener(new rekenKnopHandler());
  rekenKnop.setBounds(55,70,100,20);
  saldo = new TextField("100",12);
  saldo.setEditable(false);  //met deze regel kan het het saldo vakje in/uitgeschakeld worden.
                            //Dit kan door de statement op true of false te zetten.
  saldo.setBounds(55,30,70,20);

  add(invoerVak);
  add(saldo);
  add(rekenKnop);
}
public void paint(Graphics g) {
  g.drawString("Invoer €",10,25);
  g.drawString("Saldo €",10,45);
  }
  class rekenKnopHandler implements ActionListener {
    public void actionPerformed(ActionEvent e)
    {
      String saldostring1 = saldo.getText();
      int getal1 = Integer.parseInt(saldostring1);

      String invoerVak1 = invoerVak.getText();
      int getal2 = Integer.parseInt(invoerVak1);

      int resultaat = getal1 + getal2;

      saldo.setText(""+resultaat);
      invoerVak.setText("");
   }
  }
}

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Definieer melding. Wil je een messagebox of is een tekstje dat zichtbaar wordt in je formulier ook goed?

Indien het laatstgenoemde is wat je wil, kun je een label opnemen in je formulier en daarin de melding weergeven.

Ik mis in je code sowieso het onderdeel waarmee je een negatief saldo constateert, heb je al nagedacht waar je het in wilt bouwen? En ook vind ik jouw programma een beetje op een huiswerkopdracht lijken, of vergis ik me? :)

  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
bigbeng schreef op maandag 07 maart 2005 @ 08:58:
Definieer melding. Wil je een messagebox of is een tekstje dat zichtbaar wordt in je formulier ook goed?

Indien het laatstgenoemde is wat je wil, kun je een label opnemen in je formulier en daarin de melding weergeven.

Ik mis in je code sowieso het onderdeel waarmee je een negatief saldo constateert, heb je al nagedacht waar je het in wilt bouwen? En ook vind ik jouw programma een beetje op een huiswerkopdracht lijken, of vergis ik me? :)
Het is idd een huiswerkopdracht, het moet gewoon in het formulier komen die melding.
Ik ben er reeds een aantal uur mee bezig geweest, krijg het niet voor elkaar...
De code voor de melding heb ik er uit gehaald en weggegooid, want daarmee krijg ik alleen maar meer errors :P

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Dan is mijn vraag aan jou: wat heb je al geprobeerd? Wat gaat er fout?
En deze vragen verzin ik niet zelf, die staan genoemd in de FAQ. We leveren op dit forum geen kant en klare oplossingen, maar ondersteunen bij het oplossen van problemen. :)

Algemene oplossingsrichting: Ik hanteer meestal de methode die ik vroeger bij VB ook al gebruikte, namelijk het plaatsen van een label op mijn form om daarin meldingen weer te geven. Voor meer informatie over labels in AWT: http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Label.html
Je kunt een label op dezelfde manier benaderen als een textbox, behalve dat de gebruiker er niets op kan intypen natuurlijk ;)

edit:

linkje naar FAQ en een typootje :)

[ Voor 9% gewijzigd door bigbeng op 07-03-2005 10:11 ]


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10:16
Je hebt nu de ActionPerformed in een child-class van je Applet zitten. In de hiërarchie weet een parent wel alles van z'n kinderen, maar een kind niets van z'n parent. Vanuit je ActionPerformed kan je dus niets met je GUI doen.

Wanneer je de ActionPerformed uit de child-class haalt en in de class rekening zet, hoef je alleen rekenknop.AddActionListener(this) te doen. Nu kan je vanuit die ActionPerformed alle componenten uit je GUI benaderen (omdat ze op hetzelfde niveau zitten).

offtopic:
Bestaat er ook niet zoiets als een Label? Dan hoef je niet in de paint iedere keer zelf die tekst opnieuw neer te zetten...


edit:

Ja dus :)

[ Voor 4% gewijzigd door riezebosch op 07-03-2005 10:16 ]

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


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09:42

Robtimus

me Robtimus no like you

riezebosch schreef op maandag 07 maart 2005 @ 10:16:
Je hebt nu de ActionPerformed in een child-class van je Applet zitten. In de hiërarchie weet een parent wel alles van z'n kinderen, maar een kind niets van z'n parent. Vanuit je ActionPerformed kan je dus niets met je GUI doen.
Onzin; ik roep zo vaak fields aan in anonieme classes en inner classes. Iets in de vorm van:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
private Label label;

...

rekenKnop.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        label.setText("aangeroepen vanuit een anonieme class");
        // of, als er naamsverwarring is
        rekening.this.label.setText("aangeroepen vanuit een anonieme class");
    }
});
Werkt perfect, en in een inner class gaat het precies zo.

Sterker nog: de inner class kan bij alle fields / methods van de omsluitende class, maar andersom niet.

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


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10:16
Ok :)

Dan ontgaat mij wel alleen de hiërarchie van het OO denken... Mij leek het namelijk dat die niveau's gescheiden zouden zijn. Na het schrijven bedacht ik me wel ook dat in Java je de methods uit classes van hetzelfde niveau kunt benaderen, en niet zoals in C++ je dan problemen krijgt met wederzijdse include's.

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


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09:42

Robtimus

me Robtimus no like you

Beschouw die inner classes maar als een soort friend van de Java class; het is gewoon een class waar je een deel van je functionaliteit aan delegeert.

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

Pagina: 1