[JAVA] fout in source code waardoor er geen uitvoer komt...

Pagina: 1
Acties:

  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 19:31
goed morgen allen,

Ik ben sinds enige tijd bezig met Java en gebruik hiervoor "Visual Cafe 4".
ik probeer een simpel overhoor programma te maken.
het programma geeft een willekeurig woord en in veld 2 voer ik bijv. de vertaling in.
hij kijkt of ik het goed antwoord heb ingevult en geeft in een label de tekst: "goed" of "fout" .

volgens mij doet hij alles behalve de tekst geven in het label......?
ik kan hieronder de source code geven maar die is wel wat lang... als ik vanmiddag thuis ben zal ik hem wel linken naar een webpagina oid

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
/*
    A basic extension of the java.applet.Applet class
 */

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

public class Applet1 extends Applet
{
    public void init()
    {
        // Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
        symantec.itools.lang.Context.setApplet(this);
    
        // This code is automatically generated by Visual Cafe when you add
        // components to the visual environment. It instantiates and initializes
        // the components. To modify the code, only use code syntax that matches
        // what Visual Cafe can generate, or Visual Cafe may be unable to back
        // parse your Java file into its visual environment.
        //{{INIT_CONTROLS
        setLayout(null);
        setSize(426,266);
        add(uitvoer1);
        uitvoer1.setBounds(60,60,142,36);
        add(uitvoer2);
        uitvoer2.setBounds(252,60,142,31);
        button1.setLabel("button");
        add(button1);
        button1.setBackground(java.awt.Color.lightGray);
        button1.setBounds(144,120,152,58);
        add(label1);
        label1.setBackground(java.awt.Color.gray);
        label1.setBounds(60,204,285,31);
        add(veld2);
        veld2.setBounds(24,120,92,35);
        veld2.setVisible(false);
        //}}
    
        //{{REGISTER_LISTENERS
        SymAction lSymAction = new SymAction();
        button1.addActionListener(lSymAction);
        //}}
    }
    
    //{{DECLARE_CONTROLS
    java.awt.TextField uitvoer1 = new java.awt.TextField();
    java.awt.TextField uitvoer2 = new java.awt.TextField();
    java.awt.Button button1 = new java.awt.Button();
    java.awt.Label label1 = new java.awt.Label();
    java.awt.TextField veld2 = new java.awt.TextField();
    //}}

    class SymAction implements java.awt.event.ActionListener
    {
        public void actionPerformed(java.awt.event.ActionEvent event)
        {
            Object object = event.getSource();
            if (object == button1)
                button1_ActionPerformed(event);
        }
    }

    void button1_ActionPerformed(java.awt.event.ActionEvent event)
    {
        double random;
        random = Math.random();
        int worp;
        worp = (int)(5*random)+1;
        String worp1;
        worp1 = String.valueOf(worp);
        
        int inv;
        inv = worp;
        if (inv == 5 ) worp1 = "vijf";
        else if (inv == 4 ) worp1 = "vier";
        else if (inv == 3 ) worp1 = "drie";
        else if (inv == 2 ) worp1 = "twee";
        else if (inv == 1 ) worp1 = "een";
        uitvoer1.setText(worp1);
        
        
        String invoervertaling;
        invoervertaling = uitvoer2.getText();
        if (invoervertaling == "vijf" ) veld2.setText("5");
        else if (invoervertaling == "vier" ) veld2.setText("4");
        else if (invoervertaling == "drie" ) veld2.setText("3");
        else if (invoervertaling == "twee" ) veld2.setText("2");
        else if (invoervertaling == "een" ) veld2.setText("1");
        
        
        String onzichtbaar;
        onzichtbaar = veld2.getText();
        int antwoord;
        antwoord = Integer.parseInt(onzichtbaar) ;
        
        
        int antwoord1;
        antwoord1 = inv + antwoord;
        if (antwoord1 == 6 ) 
        label1.setText("goed");
        else if (antwoord1 == 10 )
        label1.setText("fout");
        else if (antwoord1 == 9 )
        label1.setText("fout");
        else if (antwoord1 == 8 )
        label1.setText("fout");
        else if (antwoord1 == 7 )
        label1.setText("fout");
        else if (antwoord1 == 5 )
        label1.setText("fout");
        else if (antwoord1 == 4 )
        label1.setText("fout");
        else if (antwoord1 == 3 )
        label1.setText("fout");
        else if (antwoord1 == 2 )
        label1.setText("fout");
        else if (antwoord1 == 1 )
        label1.setText("fout");
        
    
    
    }
    
}


totzover de code >:) ,
maar ik heb dus echt geen idee waarom hij geen goed/fout geeft..... :?

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
misschien zelf even debuggen ?
Je IDE zal je er zeker wel de mogelijkheden en tools voor aanreiken.

[ Voor 54% gewijzigd door whoami op 22-04-2005 10:57 ]

https://fgheysels.github.io/


  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 19:31
whoami schreef op vrijdag 22 april 2005 @ 10:57:
misschien zelf even debuggen ?
Je IDE zal je er zeker wel de mogelijkheden en tools voor aanreiken.
het leuke is dat de debugger zegt dat alles klopt. en ja de code zal wel kloppen maar ik doe iets fout met mn eindresultaat ofzo. ik heb al vanalles geprobeerd maar volgens mij is dit het enige dat wel zou moeten kloppen...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

maak je if else statement af met een opvangende else:
code:
1
2
3
4
5
...
else if (antwoord1 == 1 )
        label1.setText("fout");
else
        label1.setText("tomtidomtidom");

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Controleer even wat antwoordl is. Voor de rest vind ik de code er niet echt netjes uitzien. Voorbeeldje:
code:
1
2
3
4
worp = (int)(5*random)+1;
...
int inv;
inv = worp;


Op deze manier hoop ik niet dat je een overhoorprogramma maakt met 10-tallen vragen.... ;)

[ Voor 23% gewijzigd door stp_4 op 22-04-2005 11:13 ]

stp - PSN ID: stp_4


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

Opperhoof schreef op vrijdag 22 april 2005 @ 11:03:
[...]


het leuke is dat de debugger zegt dat alles klopt. en ja de code zal wel kloppen maar ik doe iets fout met mn eindresultaat ofzo. ik heb al vanalles geprobeerd maar volgens mij is dit het enige dat wel zou moeten kloppen...
Je debugger zegt dat niet. Met de debugger kan je stap voor stap door je code heen lopen en checken of bijvoorbeeld variabelen de waarde hebben die jij verwacht, dat er in de juiste if wordt gesprongen etc.. We verwachten hier dat eigenlijk zelf al stap voor stap door je code bent heen gelopen voordat je een topic opent. Zie ook P&W FAQ - Leer **** debuggen!!

Op het moment dat je dat gedaan hebt heb je waarschijnlijk ook een beter idee waar het ongeveer mis gaat en hoef je dus ook alleen de echte relevante code te posten en niet zo'n lap die je nu hebt staan ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
p.s. je kan je if else statement een stuk kleiner maken. Beredeneer het als volgt: "als het antwoord 6 is, dan is het antwoord juist en anders niet". Hieruit volgt de volgende statement:

code:
1
2
3
4
if (antwoord1 == 6 ) 
label1.setText("goed");
else
label1.setText("fout");


Dan vang je ook gelijk alle antwoorden op die hoger zijn dan 10.

stp - PSN ID: stp_4


  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

dit stukje viel me nog op in je code
code:
1
2
  String invoervertaling = uitvoer2.getText();
  if (invoervertaling == "vijf" ) veld2.setText("5");

Strings kun je beter niet vergelijken met == maar met equals
bijvoorbeeld:
code:
1
2
  String invoervertaling = uitvoer2.getText();
  if (invoervertaling.equals("vijf") ) veld2.setText("5");

  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 19:31
_/-\o_ het lag dus inderdaad aan die .equals , nooit geweten dat die bestonden. ook heb ik mn source iets aangepast aan de posts hierboven.
hij doet in iedergeval wat ik wil, nu nog mn knopje aanpassen zodat hij niet meteen een nieuw woord geeft als ik het controleer :),

thanx allemaal!
Pagina: 1