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
| package interfacedessin;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PanneauDessin extends JPanel {
private Color couleur ;
PanneauDessin(Color couleur) {
this.couleur = couleur ;
}
public void setCouleur(Color couleur) {
this.couleur=couleur;
repaint();
}
public Color getCouleur() {
return couleur;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g); // n'enlève pas la gestion standard du dessin du composant
g.setColor(couleur);
g.fillOval(0,0,40,40);
}
public static void main(String[] args) {
PanneauDessin panneauDessin = new PanneauDessin(Color.BLUE); // on créé l'instance de PanneauDessin avec la couleur bleue
JFrame mafenetre = new JFrame() ;
JPanel panelBoutons = new JPanel(); // on créé un JPanel pour les boutons (layout par défaut : FlowLayout)
JButton changercouleur = new JButton("Changer Couleur") ;
changercouleur.addActionListener(new TestPanneau(panneauDessin)); // on ajoute l'action listener en lui passant la référence de l'instance de PanneauDessin
panelBoutons.add(changercouleur);
mafenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mafenetre.getContentPane().add(panneauDessin) ; // on ajout le PanneauDessin au centre (par défaut le content pane a un BorderLayout, et pas de contrainte = BorderLayout.CENTER)
mafenetre.setTitle("Interface Dessin");
// mafenetre.setBackgroudColor(Color.white) ;
mafenetre.setLocation(200, 200);
mafenetre.setSize(400,400);
mafenetre.add(panelBoutons,BorderLayout.SOUTH) ; // on ajoute le panel des boutons au sud du content pane.
//mafenetre.pack();
mafenetre.setVisible(true);
}
} |
Partager