grootste getal uit 2 tekstvakken (2)

Status
Niet open voor verdere reacties.

Heladeen

Gebruiker
Lid geworden
16 aug 2008
Berichten
19
Ik moet dezelfde opgave maken als deze, ik heb nu dit:
Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class de_grootste extends Applet 
{	TextField vak1, vak2;
	int getal1, getal2;
	Label label1, label2;
	Button knop;
	
	public void init() 
	{	getal1 = 1;
		getal2 = 2;
		
		vak1 = new TextField(25);
		vak2 = new TextField(25);
		
		knop = new Button("Hier klikken");
		knop.addActionHandler(new KnopHandler());
		
		label1 = new Label("Voer twee getallen in en klik dan op de knop");
		label2 = new Label("De applet verteld je dan welke het grootst is");
		
		add(label1);
		add(label2);
		add(vak1);
		add(vak2);
		add(knop);
	}

	public void paint(Graphics g) 
	{	if(getal1 > getal2)
		{	g.drawString("Het eerste getal is groter", 150,150);
		}
		else if(getal1 < getal2)
		{	g.drawString("Het tweede getal is groter",150,150);
		}
		else
		{	g.drawString("Ze zijn even groot",150,150);
		}
		
	}
	
	class KnopHandler implements ActionListener
	{	public void actionPerformed(ActionEvent e)
		{	String invoer1 = vak1.getText();
			getal1 = Integer.parseInt(invoer1);
			String invoer2 = vak2.getText();
			getal2 = Integer.parseInt(invoer2);
			repaint();	
		}
	}
	
}

Maar dan krijg ik de volgende melding:
operator > cannot be applied to java.lang.String,java.lang.String
operator < cannot be applied to java.lang.String,java.lang.String

Wat doe ik fout?
 
Laatst bewerkt door een moderator:
Je wil 2 strings vergelijken alsof ze integers zijn lijkt het er op....
getal1 en getal2 zijn al integers..... vreemd...


Zoals de code er nu uitziet, zou hij die errors niet mogen geven....
 
Laatst bewerkt:
Heb ik dat hier nog niet gedaan?
Code:
public void actionPerformed(ActionEvent e)
		{	String invoer1 = vak1.getText();
			getal1 = Integer.parseInt(invoer1);
			String invoer2 = vak2.getText();
			getal2 = Integer.parseInt(invoer2);
			repaint();	
		}

En zo nee, waar moet ik het dan wel doen?
 
Hij geeft waarschijnlijk de fouten bij:

Code:
                [COLOR="Red"]if(getal1 > getal2)[/COLOR]
		{	g.drawString("Het eerste getal is groter", 150,150);
		}
		[COLOR="Red"]else if(getal1 < getal2)[/COLOR]
		{	g.drawString("Het tweede getal is groter",150,150);
		}

Maar die code staat goed...
 
Hij zegt eigenlijk dat < en > niet bekend zijn. Maar dat is toch vreemd?
En inderdaad op die regels.
Maar het uit in welke volgorde ik alles zet? Dus bv als ik paint en class omwissel?
 
Wat hij zegt is dat jij volgens hem strings wil vergelijken.

Probeer eens om een compleet nieuwe classfile te maken en daar dan deze code in te plakken. Dan kijken of hij de errors nog geeft.
 
Je bedoelt gewoon een nieuwe workspace aanmaken en dan dit helemaal kopieren en dan kijken wat 'ie doet?
 
Nu heb ik dit:

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

public class thegreatest extends Applet 
{	TextField vak1, vak2;
	int getal1, getal2;
	Label label1, label2;
	Button knop;
	
	public void init() 
	{	getal1 = 1;
		getal2 = 2;
		
		vak1 = new TextField(25);
		vak2 = new TextField(25);
		
		knop = new Button("Hier klikken");
		knop.addActionHandler(new KnopHandler());
		
		label1 = new Label("Voer twee getallen in en klik dan op de knop");
		label2 = new Label("De applet verteld je dan welke het grootst is");
		
		add(label1);
		add(label2);
		add(vak1);
		add(vak2);
		add(knop);
	}

	public void paint(Graphics g) 
	{	if(getal1 > getal2)
		{	g.drawString("Het eerste getal is groter", 150,150);
		}
		else if(getal1 < getal2)
		{	g.drawString("Het tweede getal is groter",150,150);
		}
		else
		{	g.drawString("Ze zijn even groot",150,150);
		}
		
	}
	
	class KnopHandler implements ActionListener
	{	public void actionPerformed(ActionEvent e)
		{	String invoer1 = vak1.getText();
			getal1 = Integer.parseInt(invoer1);
			String invoer2 = vak2.getText();
			getal2 = Integer.parseInt(invoer2);
			repaint();	
		}
	}
	
}

En krijg ik deze melding:
cannot find symbol method addActionHandler
 
Maak van:
Code:
knop.addActionHandler(new KnopHandler());
eens:
Code:
knop.addActionListener(new KnopHandler());
 
Oei, oei, dat was dom. Maar hij doet 't !!

Nu nog even de layout aanpassen want die vind ik niet mooi.

Kan ik ook beginnen zonder beginwaarde van de getallen? Want nu zegt 'ie gelijk al dat er 1 groter is, maar er is eigenlijk nog niets ingevoerd.
Kan ik dan bij init aangeven
Code:
getal1 = "";
getal2 = "";

of heeft het programma dan een probleem?

Enne ... hartstikke bedankt hoor!!
 
Code:
getal1 = "";
Is een Stringtoewijzing. (dat kan dus niet op een integer)

Je zou dan kunnen beginnen met:

Code:
getal1 = 0;

Daarnaast zou je in je actionlistener aan kunnen geven dat hij alleen moet 'triggeren' als jij op de knop drukt. door de knop als "source" te gebruiken.
 
dat tweede begrijp ik nog niet. Dat komt dan later wel.
Bedankt, ik kan weer vooruit!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan