🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
8 messages
8 total messages Started by Gekkie Sat, 15 May 2004 20:07
Help gevraagd!!
#2503
Author: Gekkie
Date: Sat, 15 May 2004 20:07
83 lines
3155 bytes
Hallo,
Ik ben met een java applet bezig maar zit ergens fout in mijn code maar zie
het niet meteen zitten de vraag staat bij de comentaar in mijn code gelieve
eens naar te kijken waar de fout zit en hoe ik deze moet verbeteren.

Groetjes en bedankt.
Gekkie


file://Hs05_03
// Het bestaat uit 3 vragen en luiden als volgd.
// vraag 1: Maak een applet met een tekstvak waarin je de prijs van een
artikel kunt intikken zonder BTW. Voeg een knop toe aan de applet. Zodra je
op deze knop klikt komt het BTW -bedrag(19%) en de prijs inclusief BTW in
twee andere tekstvakken op het scherm. Zorg ervoor dat de gebruiker deze
uitvoer niet kan wijzigen. Zet passende labels bij de tekstvakken. ( gemaakt
geen probleem ).

// vraag 2: Pas de applet van de vorige opgave zo aan dat het resultaat van
de berekening verschijnt zodra je in het invoervak op Enter drukt. (gemaakt
geen probleem )

// vraag3: Verwijder de twee uitvoervakken uit de vorige opgave en maak de
applet zo dat het resultaat van de berekening op het scherm komt via de
methode paint(). Aanwijzing: declareer voor het BTW-bedrag en voor de prijs
inclusief BTW twee object-variabelen.
//

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


public class Hs05_Vr03 extends Applet
{
tekstveld was btw, Resultaat1;
 TextField invoervak;
 Button Bereken;
 Label invoerL;

 public void init()
 {
  setLayout( null );
  invoervak = new TextField( 12 );
  invoervak.addActionListener( new InvoervakHandler() );
  invoervak.setBounds(110, 10, 100 ,20 );

  invoerL = new Label( "Geef getal" );
  invoerL.setBounds( 0, 10, 80, 20 );

  add( invoervak );
  add( invoerL );


  public void paint( Graphics g )
  {
   g.drawString( resultaat + " is het totaal",110, 50, 100, 20  );
   g.drawString( BTW + " is het BTW bedrag",110, 30, 100, 20 );
  }

 }

 class InvoervakHandler implements ActionListener
 {
  public void actionPerformed( ActionEvent e)
  {
   String invoerstring;
   double BTW, getal1, resultaat;

   invoerstring = invoervak.getText();
   getal1 = Double.parseDouble( invoerstring);

   BTW = getal1 * 19 / 100;
   btw.setText(""+ BTW );

   resultaat = getal1 + BTW;
   Resultaat1.setText( "" + resultaat);


  }
 }

}
Re: Help gevraagd!!
#2505
Author: Tim Van Wassenhove
Date: Sat, 15 May 2004 20:51
28 lines
1299 bytes
In article <40a67836$0$41758$5fc3050@dreader2.news.tiscali.nl>, Gekkie wrote:
> public class Hs05_Vr03 extends Applet
> {
> tekstveld was btw, Resultaat1;

?

>  TextField invoervak;
>  Button Bereken;
>  Label invoerL;
> 
>   public void paint( Graphics g )
>   {
>    g.drawString( resultaat + " is het totaal",110, 50, 100, 20  );
>    g.drawString( BTW + " is het BTW bedrag",110, 30, 100, 20 );
>   }

Vanwaar komen resultaat en BTW?

>    invoerstring = invoervak.getText();
>    getal1 = Double.parseDouble( invoerstring);

Het lijkt me geen slecht idee dit in een try catch block te zetten,
aangezien de API vermeld dat dit een exception kan throwen... 


-- 
http://home.mysth.be/~timvw
Re: Help gevraagd!!
#2506
Author: Kristoffel
Date: Sat, 15 May 2004 22:56
73 lines
3014 bytes
Gekkie wrote:
> 
> // vraag 2: Pas de applet van de vorige opgave zo aan dat het resultaat van
> de berekening verschijnt zodra je in het invoervak op Enter drukt. (gemaakt
> geen probleem )
> 
> // vraag3: Verwijder de twee uitvoervakken uit de vorige opgave en maak de
> applet zo dat het resultaat van de berekening op het scherm komt via de
> methode paint(). Aanwijzing: declareer voor het BTW-bedrag en voor de prijs
> inclusief BTW twee object-variabelen.
> //
> 
> import java.awt.*;
> import java.applet.*;
> import java.awt.event.*;
> 
> 
> public class Hs05_Vr03 extends Applet
> {
> tekstveld was btw, Resultaat1;
>  TextField invoervak;
>  Button Bereken;
>  Label invoerL;
> 
>  public void init()
>  {
>   setLayout( null );
>   invoervak = new TextField( 12 );
>   invoervak.addActionListener( new InvoervakHandler() );

Ik begrijp niet hoe dit werkte bij vraag 2. Ik zou hier eerder met de 
methode 'addKeyListener (KeyListener l)' werken.

>   invoervak.setBounds(110, 10, 100 ,20 );
> 
>   invoerL = new Label( "Geef getal" );
>   invoerL.setBounds( 0, 10, 80, 20 );
> 
>   add( invoervak );
>   add( invoerL );
> 
> 
>   public void paint( Graphics g )
>   {
>    g.drawString( resultaat + " is het totaal",110, 50, 100, 20  );
>    g.drawString( BTW + " is het BTW bedrag",110, 30, 100, 20 );
>   }
> 
>  }
> 
>  class InvoervakHandler implements ActionListener
>  {
>   public void actionPerformed( ActionEvent e)
>   {
>    String invoerstring;
>    double BTW, getal1, resultaat;
> 
>    invoerstring = invoervak.getText();
>    getal1 = Double.parseDouble( invoerstring);
> 
>    BTW = getal1 * 19 / 100;
>    btw.setText(""+ BTW );
> 
>    resultaat = getal1 + BTW;
>    Resultaat1.setText( "" + resultaat);
> 
> 
>   }
>  }
> 
> }
> 
> 
Re: Help gevraagd!!
#2507
Author: Gekkie
Date: Sun, 16 May 2004 07:20
85 lines
3506 bytes
"Kristoffel" <kdg1955@yahoo.com> schreef in bericht
news:Yexpc.109175$6V2.6170687@phobos.telenet-ops.be...
> Gekkie wrote:
> >
> > // vraag 2: Pas de applet van de vorige opgave zo aan dat het resultaat
van
> > de berekening verschijnt zodra je in het invoervak op Enter drukt.
(gemaakt
> > geen probleem )
> >
> > // vraag3: Verwijder de twee uitvoervakken uit de vorige opgave en maak
de
> > applet zo dat het resultaat van de berekening op het scherm komt via de
> > methode paint(). Aanwijzing: declareer voor het BTW-bedrag en voor de
prijs
> > inclusief BTW twee object-variabelen.
> > //
> >
> > import java.awt.*;
> > import java.applet.*;
> > import java.awt.event.*;
> >
> >
> > public class Hs05_Vr03 extends Applet
> > {
> > tekstveld was btw, Resultaat1;
> >  TextField invoervak;
> >  Button Bereken;
> >  Label invoerL;
> >
> >  public void init()
> >  {
> >   setLayout( null );
> >   invoervak = new TextField( 12 );
> >   invoervak.addActionListener( new InvoervakHandler() );
>
> Ik begrijp niet hoe dit werkte bij vraag 2. Ik zou hier eerder met de
> methode 'addKeyListener (KeyListener l)' werken.
>
> >   invoervak.setBounds(110, 10, 100 ,20 );
> >
> >   invoerL = new Label( "Geef getal" );
> >   invoerL.setBounds( 0, 10, 80, 20 );
> >
> >   add( invoervak );
> >   add( invoerL );
> >
> >
> >   public void paint( Graphics g )
> >   {
> >    g.drawString( resultaat + " is het totaal",110, 50, 100, 20  );
> >    g.drawString( BTW + " is het BTW bedrag",110, 30, 100, 20 );
> >   }
> >
> >  }
> >
> >  class InvoervakHandler implements ActionListener
> >  {
> >   public void actionPerformed( ActionEvent e)
> >   {
> >    String invoerstring;
> >    double BTW, getal1, resultaat;
> >
> >    invoerstring = invoervak.getText();
> >    getal1 = Double.parseDouble( invoerstring);
> >
> >    BTW = getal1 * 19 / 100;
> >    btw.setText(""+ BTW );
> >
> >    resultaat = getal1 + BTW;
> >    Resultaat1.setText( "" + resultaat);
> >
> >
> >   }
> >  }
> >
> > }
> > In vraag 2 moet je alleen maar die tekstvakken die hier al wegzijn.
laten werken als je op enter drukt. deze heb ik doen laten werken die vraag
die zit ik vast ik moet ergens die getallen uit de classe kunnen halen en
deze in de public void van paint kunnen zetten ( kort weg gezegd de
tekstvakken die weg zijn moeten via paint() kunnen laten zien.)

> >
Re: Help gevraagd!!
#2509
Author: Tim Van Wassenhove
Date: Sun, 16 May 2004 08:25
25 lines
1673 bytes
In article <40a71613$0$41755$5fc3050@dreader2.news.tiscali.nl>, Gekkie wrote:
> 
> "Kristoffel" <kdg1955@yahoo.com> schreef in bericht
> news:Yexpc.109175$6V2.6170687@phobos.telenet-ops.be...
>> Gekkie wrote:
>> >
>> > public class Hs05_Vr03 extends Applet
>> > {
>> > tekstveld was btw, Resultaat1;
>> >  TextField invoervak;
>> >  Button Bereken;
>> >  Label invoerL;

>> > In vraag 2 moet je alleen maar die tekstvakken die hier al wegzijn.
> laten werken als je op enter drukt. deze heb ik doen laten werken die vraag
> die zit ik vast ik moet ergens die getallen uit de classe kunnen halen en
> deze in de public void van paint kunnen zetten ( kort weg gezegd de
> tekstvakken die weg zijn moeten via paint() kunnen laten zien.)

Ik vrees dat je nog veel (basis) oefeningen zult moeten maken als je
hier problemen mee hebt. Hoe heb je eigenlijk de oorspronkelijke versie
kunnen schrijven als je niet weet wat globale variabelen zijn?

-- 
http://home.mysth.be/~timvw
Re: Help gevraagd!!
#2511
Author: Kristoffel
Date: Sun, 16 May 2004 08:33
71 lines
3051 bytes
Gekkie wrote:
>>>In vraag 2 moet je alleen maar die tekstvakken die hier al wegzijn.
> 
> laten werken als je op enter drukt. deze heb ik doen laten werken die vraag
> die zit ik vast ik moet ergens die getallen uit de classe kunnen halen en
> deze in de public void van paint kunnen zetten ( kort weg gezegd de
> tekstvakken die weg zijn moeten via paint() kunnen laten zien.)
> 

1) plaats alle berekeningen in de methode paint.
2) in de innerclass-methode 'actionPerformed' alleen een 'repaint ();'
3) parseDouble in try-blok
4) het formaat van drawString is : 'drawString (String s, int x, int y)'

Dit is een mogelijke implementatie:

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


public class Hs05_Vr03 extends Applet
{
  TextField invoervak;
  Button Bereken;
  Label invoerL;

   public void init() {
    setLayout( null );
    invoervak = new TextField( );
    invoervak.addActionListener( new InvoervakHandler() );
    invoervak.setBounds(130, 10, 100 ,30 );

    invoerL = new Label( "Geef getal" );
    invoerL.setBounds( 10, 10, 100, 30 );

    add( invoervak );
    add( invoerL );

   }


   public void paint( Graphics g ) {
    String invoerstring;
    double BTW, getal1, resultaat;

    invoerstring = invoervak.getText();
    try {
     getal1 = Double.parseDouble( invoerstring);
    } catch (NumberFormatException nfex) {
     return;
    }

    BTW = getal1 * 19 / 100;
    resultaat = getal1 + BTW;

    g.drawString (BTW + " is het BTW bedrag", 10, 70);
    g.drawString (resultaat + " is het totaal", 10, 90);

   }

  class InvoervakHandler implements ActionListener {
   public void actionPerformed( ActionEvent e) {
    repaint ();
   }
  }

}

-- 
  Kristoffel
Re: Help gevraagd!!
#2512
Author: Tim Van Wassenhove
Date: Sun, 16 May 2004 12:46
19 lines
1439 bytes
In article <VHFpc.109956$vH.6386791@phobos.telenet-ops.be>, Kristoffel wrote:
> Gekkie wrote:
>>>>In vraag 2 moet je alleen maar die tekstvakken die hier al wegzijn.
>> 
>> laten werken als je op enter drukt. deze heb ik doen laten werken die vraag
>> die zit ik vast ik moet ergens die getallen uit de classe kunnen halen en
>> deze in de public void van paint kunnen zetten ( kort weg gezegd de
>> tekstvakken die weg zijn moeten via paint() kunnen laten zien.)
>> 
> 
> 1) plaats alle berekeningen in de methode paint.

Maar dan wordt bij elke paint alles opnieuw berekend?
Is dit geen overkill?

Anyway, het zonnetje schijnt en mijn huistaak is wel al af :) 

-- 
http://home.mysth.be/~timvw
Re: Help gevraagd!!
#2513
Author: Kristoffel
Date: Sun, 16 May 2004 15:34
29 lines
2248 bytes
Tim Van Wassenhove wrote:
> In article <VHFpc.109956$vH.6386791@phobos.telenet-ops.be>, Kristoffel wrote:
> 
>>Gekkie wrote:
>>
>>>>>In vraag 2 moet je alleen maar die tekstvakken die hier al wegzijn.
>>>
>>>laten werken als je op enter drukt. deze heb ik doen laten werken die vraag
>>>die zit ik vast ik moet ergens die getallen uit de classe kunnen halen en
>>>deze in de public void van paint kunnen zetten ( kort weg gezegd de
>>>tekstvakken die weg zijn moeten via paint() kunnen laten zien.)
>>>
>>
>>1) plaats alle berekeningen in de methode paint.
> 
> 
> Maar dan wordt bij elke paint alles opnieuw berekend?
> Is dit geen overkill?
> 
> Anyway, het zonnetje schijnt en mijn huistaak is wel al af :) 
> 

Je hebt gelijk.
Ik zei ook dat het een mogelijke oplossing is. Methode 'Paint' wordt 
inderdaad ook opgeroepen bij een move of resize van de window.
Een betere oplossing is te werken met private attribute.

--
  Kristoffel
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads