Modification rectangle / ovale et vice versa
Bonjour,
J'ai pour étudier fait de tête un script censé afficher un coup un dessin ovale un coup un dessin rectangulaire dans le panneau mais lors du clic sur un des deux boutons une erreur se produit dans la fenetre console.
Aussi à quoi sert la méthode PaintComponent(Graphics g) ???
Merci d'avance pour votre aide :)
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
| import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MaFenetre extends JFrame implements ActionListener
{
public MaFenetre()
{
setTitle("Titre de ma fenêtre");
setBounds(150,150,600,600);
setVisible(true);
Container page = getContentPane();
Panneau pan = new Panneau();
pan.setBackground(Color.green);
page.add(pan);
rectangle= new JButton("Rectangle");
page.add(rectangle, "North");
rectangle.addActionListener(this);
ovale = new JButton("Ovale");
page.add(ovale, "South");
ovale.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == ovale) pan.dessinOvale();
if(e.getSource() == rectangle) pan.dessinRectangle();
pan.repaint();
}
private Panneau pan;
private JButton ovale, rectangle;
}
class Panneau extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(ovale) g.drawOval(80,20,120,60);
if(rectangle) g.drawRect(80,20,120,60);
}
public void dessinOvale() {rectangle = false; ovale = true;}
public void dessinRectangle() {rectangle = true; ovale = false;}
public boolean rectangle = false, ovale = false;
}
public class babar
{
public static void main(String args[])
{
MaFenetre f = new MaFenetre();
}
} |