knop: cirkel tekenen

Status
Niet open voor verdere reacties.

Tjennne

Gebruiker
Lid geworden
22 apr 2008
Berichten
33
Mijn probleem:
Maak een applet met een tekstvak waarin je de straal van een cirkel (in pixels) kunt intikken, en een knop waarop de tekst TEKENEN staat. Als je op de knop klikt, tekent de applet een cirkel van de gevraagde grootte.

Mijn werk:

Code:
package opgave2_2;

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

public class opgave2_2 extends Applet
{
    TextField invoervak,resultaatvak; Button knop;
    int getal = 50;

 public void init()
    {
     invoervak = new TextField(12);
     knop = new Button ("TEKENEN");
     knop.addActionListener(new knopHandler());

     add(invoervak);
     add(knop);
     add(resultaatvak);
    }
 public void paint( Graphics g)
   {
     g.drawOval(100,100,getal,getal);
    }
class knopHandler implements ActionListener
  {
  public void actionPerformed(ActionEvent e)
    {
      String invoerstring=invoervak.getText();
      int getal=Integer.parseInt(invoerstring);
      repaint();
    }

  }
}

Wat doe ik verkeerd?????
 
Laatst bewerkt door een moderator:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class opgave2_2 extends Applet {
    TextField invoervak,resultaatvak; Button knop;
    int getal = 50;
    
    public void init() {
        invoervak = new TextField(12);
        knop = new Button("TEKENEN");
        knop.addActionListener(new knopHandler());
        
        add(invoervak);
        add(knop);
[COLOR="Red"]        //add(resultaatvak);[/COLOR]
    }
    public void paint( Graphics g) {
        g.drawOval(100,100,getal,getal);
    }
    class knopHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String invoerstring=invoervak.getText();
[COLOR="Red"]            getal=Integer.parseInt(invoerstring);[/COLOR]
            repaint();
        }
        
    }
}

Resultaatvak was niet geïnitialiseert
Dus als je die nog wil gebruiken, dan zal je iets als:
Code:
resultaatvak = new TextField(12);
moeten doen.

Daarnaast had je in de class knophandler je integer getal opnieuw aangemaakt, dit terwijl je de waarde aan de variabele getal uit de class opgave2_2 toe moest wijzen.
 
Laatst bewerkt:
Bedankt voor de snelle reactie!

Nu moet ik aan dit applet meer knoppen toevoegen: 1 knop waarmee je de straal van de cirkel groter maakt , 1 waarmee je de straal van de cirkel kleiner maakt en 1 waarmee je een gevulde cirkel kunt maken. Voeg een paar gekleurde knoppen toe waarmee je de kleur van de cirkel kunt veranderen.

Nu loop ik vast bij 'de gevulde'knop en de gekleurde knoppen:


package opgave2_2;

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

public class opgave2_2 extends Applet
{
TextField invoervak; Button knop,knop2,knop3,knop4;
int getal = 50;

public void init()
{
invoervak = new TextField(12);
knop = new Button ("TEKENEN");
knop.addActionListener(new knopHandler());
knop2= new Button ("groter");
knop2.addActionListener(new knop2Handler());
knop3= new Button ("kleiner");
knop3.addActionListener(new knop3Handler());
knop4= new Button ("gevuld");
knop4.addActionListener(new knop4Handler());

add(invoervak);
add(knop);
add(knop2);
add(knop3);
add(knop4);
}
public void paint( Graphics g)
{
g.drawOval(100,100,getal,getal);
}
class knopHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
repaint();
}
}
class knop2Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
getal += 10;
repaint();
}
}
class knop3Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
getal -= 10;
repaint();
}
}
class knop4Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
??????
repaint();
}
}
}
 
vullen gaat met de functie:
Code:
g.fillOval(x,x,x,x);
Kleur instellen gaat met
Code:
g.setColor(Color.kleurnaam);


Owja, zou je in het vervolg je code tussen code tags willen zetten? :)
Dat doe je zo:

Code:
 hier je code
 
Laatst bewerkt:
Maar waar moet ik die opdrachten plaatsen??
Ik heb het volgende, maar daar klopt niet van... :
(Bedankt voor de hulp!)

package opgave2_2;

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

public class opgave2_2 extends Applet
{
TextField invoervak; Button knop,knop2,knop3,knop4,knop5;
int getal = 50; int kleur;

public void init()
{
invoervak = new TextField(12);
knop = new Button ("TEKENEN");
knop.addActionListener(new knopHandler());
knop2= new Button ("groter");
knop2.addActionListener(new knop2Handler());
knop3= new Button ("kleiner");
knop3.addActionListener(new knop3Handler());
knop4= new Button ("gevuld");
knop4.addActionListener(new knop4Handler());
knop5= new Button("rood");
knop5.setBackground(Color.red);
knop5.addActionListener(new knop5Handler());
kleur = Color.kleur;

add(invoervak);
add(knop);
add(knop2);
add(knop3);
add(knop4);
add(knop5);
}
public void paint( Graphics g)
{
g.setColor(kleur);
g.fillOval(100,100,getal,getal);
}
class knopHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
repaint();
}
}
class knop2Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
getal += 10;
repaint();
}
}
class knop3Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
getal -= 10;
repaint();
}
}
class knop4Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
kleur= Coler.black;
repaint();
}
}
class knop5Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
kleur= Color.red;
repaint();
}
}
}
 
Code:
int kleur

Kleur moet niet een int zijn, maar van het type Color
Dus het wordt:
Code:
Color kleur;


Dit gaat niet werken:
Code:
kleur = Color.kleur;

Omdat je de naam van de kleur achter de punt moet zetten.
Dus bijvoorbeeld:
Code:
Color.BLACK;

Verder, als je de kleur of grootte van de cirkel wijzigt, dan hoef je niet elke keer weer het tekstvak uit te lezen
Dus bijvoorbeeld deze:
Code:
class knop3Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal=Integer.parseInt(invoerstring);
getal -= 10;
repaint();
}
}
wordt:
Code:
class knop3Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
getal -= 10;
repaint();
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan