Toon posts:

[JAVA] Wat doe ik fout?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb dit programma gemaakt. Als je een cijfer invoerd dat moet er bij ieder cijfer 1 t/m 10 iets anders gezegd worden. Alleen als ik een cijfer invoer en ik druk op enter dan gebeurt er niets.

Ik wilde met if/else werken maar ik denk dat ik iets fout doe. Ziet iemand wat ik fout doe? Iets met g.drawString ofzo?

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
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Vb651 extends Applet {
    int cijfer;
    TextField vak;
    String resultaat = "Het resultaat is: ";
    
    public void init() {
        cijfer = 0;
        vak = new TextField( 10);
        vak.addActionListener( new VakHandler() );
        add( new Label( "Tik je behaalde cijfer in" ) );
        add( vak ); 
    }

    public void paint(Graphics g) {
        if( cijfer == 10 ) resultaat += "Uitmunted";
            else if ( cijfer == 9 ) resultaat += "Zeer goed";
            else if ( cijfer == 8 ) resultaat += "goed hoor";
            else if ( cijfer == 7 ) resultaat += "Lache";
            else if ( cijfer == 6 ) resultaat += "Kantje boord...";
            else if ( cijfer == 5 ) resultaat += "Pech jonge";
            else if ( cijfer == 4 ) resultaat += "Dombo";
            else if ( cijfer == 3 ) resultaat += "Echt slim ben je niet he";
            else if ( cijfer == 2 ) resultaat += "roffel";
            else if ( cijfer == 1 ) resultaat += "Zeer slecht";
            else resultaat = "Geen geldig cijfer";
            
            }   
                
                
        
        
        class VakHandler implements ActionListener {
            public void actionPerformed( ActionEvent e ) {
                String invoer = vak.getText();
                cijfer = Integer.parseInt( invoer );
                repaint();
            }
        }
        }

  • Harmsen
  • Registratie: November 2000
  • Laatst online: 11:11
Uhmmm, waar staat het stuje code wat de string moet outputten? Volgens mij ben je die vergeten.
dus in de paint procedure moet volgens mij nog g.drawstring(x-coordinaat,y-coordinaat,Resultaat) staan.

[ Voor 37% gewijzigd door Harmsen op 14-12-2003 16:32 ]

What a fine day for Science! | Specs


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 27-05 21:44

Robtimus

me Robtimus no like you

Je geeft resultaat en cijfer wel waarden, maar je doet er niks mee?

[ Voor 5% gewijzigd door Robtimus op 14-12-2003 16:35 . Reden: met cijfer doe je wel degelijk iets, alleen met resultaat nog steeds niet ]

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Ik geloof dat je in je IDE wel een debugger hebt, waarmee je stapsgewijs door je programma kunt wandelen?
Door dit te doen, en gebruik te maken van watches ed. kan je zien waar je programma de mist in gaat.

Eigenlijk is het jouw taak om dat stuk code te debuggen. P&W is iig niet bedoeld om anderen jouw code te laten debuggen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 14 december 2003 @ 16:56:
Ik geloof dat je in je IDE wel een debugger hebt, waarmee je stapsgewijs door je programma kunt wandelen?
Door dit te doen, en gebruik te maken van watches ed. kan je zien waar je programma de mist in gaat.

Eigenlijk is het jouw taak om dat stuk code te debuggen. P&W is iig niet bedoeld om anderen jouw code te laten debuggen.
Maar er valt niks te debuggen want bij het compilen geeft ie geen fout aan. Het programma werkt, alleen als ik een cijfer invoer en ik druk op enter dan gebeurt er niks. Er moet denk ik iets in g.drawString maar wat precies?

[ Voor 6% gewijzigd door Verwijderd op 14-12-2003 17:07 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Verwijderd schreef op 14 december 2003 @ 17:06:
[...]


Maar er valt niks te debuggen want bij het compilen geeft ie geen fout aan. Het programma werkt, alleen als ik een cijfer invoer en ik druk op enter dan gebeurt er niks. Er moet denk ik iets in g.drawString maar wat precies?
Debuggen doe je ook niet om compile-errors eruit te halen. Als je applicatie niet compileert, heb je syntax errors. De compiler geeft dan wel aan wat er scheelt.

Echter, om logische fouten uit je programma te halen, moet je die debugger eens gebruiken. Wat er precies gebeurt (of niet gebeurt) kan je dus te weten komen door je programma'tje eens te debuggen.

https://fgheysels.github.io/


  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 27-05 09:48
HMM, Ik zou het iets anders aangepakt hebben, maar aangezien ik op school ook bezig ben met JAVA heb ik het maar voor je aangepast.

Nee, wij zijn nog niet bij het onderwerp "Applets", maar dan nog is het zo te repareren.

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
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Vb651 extends Applet {
    int cijfer;
    TextField vak;
    boolean printen=false;
    String resultaat = "Het resultaat is: ";
    
        public void init() {
            cijfer = 0;
            vak = new TextField(10);
            vak.addActionListener(new VakHandler());
            add(new Label( "Tik je behaalde cijfer in" ));
            add(vak);    
        }

        public void paint(Graphics g) {
            if(printen) {
                switch(cijfer) {
                    case 0: resultaat+="WTF, das ècht dom!";break;
                    case 1: resultaat+="Zeer slecht";break;
                    case 2: resultaat+="ROFL";break;
                    case 3: resultaat+="Niet bepaald slim";break;
                    case 4: resultaat+="Domoor";break;
                    case 5: resultaat+="Pech hebben hoor";break;
                    case 6: resultaat+="Kantje boord...";break;
                    case 7: resultaat+="Lachen hoor";break;
                    case 8: resultaat+="Goed";break;
                    case 9: resultaat+="Zeer goed";break;
                    case 10:    resultaat+="Geweldig";break;
                    default:    resultaat+="Geen geldig cijfer";
                }
                g.drawString(resultaat, 40, 40);
                g.drawString(cijfer+"!", 40, 60);
            }
        }    

        class VakHandler implements ActionListener {
            public void actionPerformed( ActionEvent e ) {
            String invoer = vak.getText();
            cijfer = Integer.parseInt(vak.getText());
            printen=true;
            repaint();
        }
    }
}


Of gewoon werkend bekijken @ hier

Suc6 met het verdere java gesputter, ik zal misschien ook wel eens langsdroppen met zo'n vraag en hopelijk zijn er dan meer die het blindelings ff kunnen fixen en onderbouwen ;)

Verwijderd

Topicstarter
LinuX-TUX schreef op 14 december 2003 @ 18:01:
HMM, Ik zou het iets anders aangepakt hebben, maar aangezien ik op school ook bezig ben met JAVA heb ik het maar voor je aangepast.

Nee, wij zijn nog niet bij het onderwerp "Applets", maar dan nog is het zo te repareren.

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
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Vb651 extends Applet {
    int cijfer;
    TextField vak;
    boolean printen=false;
    String resultaat = "Het resultaat is: ";
    
        public void init() {
            cijfer = 0;
            vak = new TextField(10);
            vak.addActionListener(new VakHandler());
            add(new Label( "Tik je behaalde cijfer in" ));
            add(vak);    
        }

        public void paint(Graphics g) {
            if(printen) {
                switch(cijfer) {
                    case 0: resultaat+="WTF, das ècht dom!";break;
                    case 1: resultaat+="Zeer slecht";break;
                    case 2: resultaat+="ROFL";break;
                    case 3: resultaat+="Niet bepaald slim";break;
                    case 4: resultaat+="Domoor";break;
                    case 5: resultaat+="Pech hebben hoor";break;
                    case 6: resultaat+="Kantje boord...";break;
                    case 7: resultaat+="Lachen hoor";break;
                    case 8: resultaat+="Goed";break;
                    case 9: resultaat+="Zeer goed";break;
                    case 10:    resultaat+="Geweldig";break;
                    default:    resultaat+="Geen geldig cijfer";
                }
                g.drawString(resultaat, 40, 40);
                g.drawString(cijfer+"!", 40, 60);
            }
        }    

        class VakHandler implements ActionListener {
            public void actionPerformed( ActionEvent e ) {
            String invoer = vak.getText();
            cijfer = Integer.parseInt(vak.getText());
            printen=true;
            repaint();
        }
    }
}


Of gewoon werkend bekijken @ hier

Suc6 met het verdere java gesputter, ik zal misschien ook wel eens langsdroppen met zo'n vraag en hopelijk zijn er dan meer die het blindelings ff kunnen fixen en onderbouwen ;)
Heej dank je wel! Ja, op die manier staat het ook in het boek zoals je het kan doen. Ik ben er inmiddels ook achter wat ik fout had gedaan. :

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
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Vb652 extends Applet {
    int cijfer;
    TextField vak;
    
    
    public void init() {
        cijfer = 0;
        vak = new TextField( 10);
        vak.addActionListener( new VakHandler() );
        add( new Label( "Tik je behaalde cijfer in" ) );
        add( vak ); 
    }

    public void paint(Graphics g) {
        String resultaat = "Het resultaat is: ";
        if( cijfer >= 6 && cijfer <= 10) {
            resultaat += "U heeft het goed gedaan, ";
            resultaat += "het cijfer is voldoende";
        }
            else if( cijfer >=1 && cijfer <=5 ) {
                resultaat += "Helaas ";
                resultaat += "niet voldoende";
            }
            
            else {
                resultaat = "Geen geldig cijfer";
            }
            g.drawString("" + resultaat, 20, 100);
            
            
            }   
                
                
        
        
        class VakHandler implements ActionListener {
            public void actionPerformed( ActionEvent e ) {
                String invoer = vak.getText();
                cijfer = Integer.parseInt( invoer );
                repaint();
            }
        }
        }


g.drawString("" + resultaat, 20, 100); die had ik er niet in staan en " String resultaat = "Het resultaat is: ";" moest in paint.

  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10-2025
je drawstring moest erin, de string zelf hoefde niet, want die was als een global gedefinieert, dus dat was wel ok.

[ Voor 4% gewijzigd door reddevil op 15-12-2003 09:04 ]


Verwijderd

ik lees te snel...

[ Voor 95% gewijzigd door Verwijderd op 15-12-2003 16:10 ]


  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 16-07-2025
Of gewoon werkend bekijken @ hier
[/quote]

Ligt het aan mij of start die Applet hier niet?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14

Het is niet de bedoeling dat P&W een uitwisselboard wordt van scripts, of dat mensen anderen hun huiswerk gaan maken. Helpen mag, maar doe dat dan op een andere manier; ipv enkel de code te posten, maak je beter de TS ook duidelijk waar hij de fout in ging, zodat hij er nog wat kan van bijleren.

https://fgheysels.github.io/


  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 27-05 09:48

[...]
Ligt het aan mij of start die Applet hier niet?
Geen ID, bij mij werkt het gewoon. Helaas kan ik dit niet 100% bevestigen omdat ik Intern naar een virtual server zit te kijken die af en toe niet helemaal top over komt. (voor mij is het http://10.0.0.*:85/javatest/ en voor jullie http://aware.demon.nl/javatest/

Maar als je nog geintresseerd bent wat de laatste aanpassingen van mij waren, staat de source ernaast

Was niet mijn intensie zijn huiswerk over te nemen, alleen vond ik het een uitdaging om het te repareren. Debuggen is NOOIT leuk werk, laat staan als je in je uppie een programma zou hebben van 500+ regels en je weet zelf totaal niet waar het vandaan komt. Tevens vind ik het zelf interessant de manier van benadering/aanpak van anderen te kunnen lezen. (statements/switches/ variabele handling)

Ik zit zelf nog enorm te knoeien met variabele handling, was het maar zo makkelijk als PHP ofzo :'(

[ Voor 1% gewijzigd door LinuX-TUX op 16-12-2003 00:07 . Reden: typo ]

Pagina: 1