hoe wordt het balletje groter en kleiner??

Status
Niet open voor verdere reacties.

romanosan

Gebruiker
Lid geworden
7 okt 2007
Berichten
88
Code:
[COLOR="Navy"]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
   
public class oefening3_13 extends JFrame {
  public static void main( String args[] ) {
    JFrame frame = new oefening3_13();
    frame.setSize( 300, 200 );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setTitle( "circel" );
    frame.setContentPane( new Cirkelpaneel() );
    frame.setVisible( true );
  }
}


class Cirkelpaneel extends JPanel {
  private JButton knoprechts,knoplinks,knopgroot,knopklein;
  private int diameter;
  
  public Cirkelpaneel() {
     setBackground( Color.YELLOW );
     diameter = 120;
     knoprechts = new JButton( "rechts" );
     knoplinks = new JButton ("links");
     knopgroot = new JButton ("groot");
     knopklein = new JButton ("klein");

     
     knoprechts.addActionListener( new KnopHandler1() );
     knoplinks.addActionListener (new KnopHandler2());
     knopgroot.addActionListener (new KnopHandler3());
     knopklein.addActionListener (new KnopHandler4());
     
     add (knoplinks);
     add (knoprechts);
     add (knopgroot);
     add (knopklein );
  }

  public void paintComponent( final Graphics g ) {
    super.paintComponent( g );
    g.setColor( Color.RED );
    // Teken een cirkel
    g.fillOval (diameter, 50,20,20);
  }
  //Hier gebeurt de afhandeling van de knoppen
  class KnopHandler1 implements ActionListener {
    public void actionPerformed( ActionEvent e ) {
      diameter++;
      repaint();
    }
  }
  
  class KnopHandler2 implements ActionListener {
	    public void actionPerformed( ActionEvent e ) {
	      diameter--;
	      repaint();
	    }
	  }
  
  class KnopHandler3 implements ActionListener {
	    public void actionPerformed( ActionEvent e ) {
	      diameter++;
	      repaint();
	    }
	  }
  
  class KnopHandler4 implements ActionListener {
	    public void actionPerformed( ActionEvent e ) {
	      diameter++;
	      repaint();
	    }
	  }
  
}
[/COLOR]
 
Laatst bewerkt door een moderator:
Ik vraag me dus af hoe het balletje groter en kleiner gemaakt kan worden.
 
Laatst bewerkt door een moderator:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class oefening3_13 extends JFrame {
    public static void main( String args[] ) {
        JFrame frame = new oefening3_13();
        frame.setSize( 300, 200 );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setTitle( "circel" );
        frame.setContentPane( new Cirkelpaneel() );
        frame.setVisible( true );
    }
}

Code:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;

public class Cirkelpaneel extends JPanel {
    private JButton knoprechts,knoplinks,knopgroot,knopklein;
    private int _XAs;
    private int _width = 20;
    private int _height = 20;
    
    public Cirkelpaneel() {
        setBackground( Color.YELLOW );
        _XAs = 120;
        knoprechts = new JButton( "rechts" );
        knoplinks = new JButton("links");
        knopgroot = new JButton("groot");
        knopklein = new JButton("klein");
        
        
        knoprechts.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt){
                _XAs++;
                repaint();
            }
        });
        knoplinks.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt){
                _XAs--;
                repaint();
            }
        });
        knopgroot.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt){
                _width++;
                _height++;
                repaint();
            }
        });
        knopklein.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt){
                if(_width > 0){
                    _width--;
                    _height--;
                }
                repaint();
            }
        });
        
        add(knoplinks);
        add(knoprechts);
        add(knopgroot);
        add(knopklein );
    }
    
    public void paintComponent( final Graphics g ) {
        super.paintComponent( g );
        g.setColor( Color.RED );
// Teken een cirkel
        g.fillOval(_XAs, 50, _width, _height);
    }

Dit is een manier.

Je kan het beste maar 1 klasse per bestand maken.
Daardoor hou je beter het overzicht.

Op het moment heb je alleen een mouselistener op je knoppen zitten.
Je zou hier ook wel weer een actionlistener van kunnen maken

Die kan je dan zo maken:

Code:
       knoplinks.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                _XAs--;
                repaint();
            }
        });

        knoprechts.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                _XAs++;
                repaint();
            }
        });

        knopgroot.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                _width++;
                _height++;
                repaint();
            }
        });

        knopklein.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(_width > 0){
                    _width--;
                    _height--;
                }
                repaint();
            }
        });

Als je nog vragen hierover hebt, stel ze gerust :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan