Récupérer la variable du JColorChooser dans une autre Classe
Bonjour,
Je me suis mis en objectif de créer un logiciel pour faire des dessins, modifier des images ect.
J'ai bien avancé mais je suis à l'arrêt sur un problème : Récupérer dans une autre classe une variable de type Color (JColorChooser). Les Public static rende ma variable impossible a mettre dans un g.setColor (dans les Graphics).
Et du coup j'aimerais que le boutons pour que la page de couleurs qui s'afficher soit dans la class outil (bar d'outil).
Mes codes :
- FenetreTest.java (Fenetre de Base)
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
| package Fenetre;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class FenetreTest extends JFrame implements ActionListener{
public static int nvf = 0;
public static String nom;
public static String x2, y2;
public static int fenetre = 1;
public FenetreTest() {
bar = new JMenuBar();
setJMenuBar(bar);
fichier = new JMenu("Fichier");
bar.add(fichier);
fichier.addActionListener(this);
edition = new JMenu("Edition");
bar.add(edition);
aide = new JMenu("Aide");
bar.add(aide);
outil = new JMenuItem("Afficher La Bar D'outil");
edition.add(outil);
outil.addActionListener(this);
f = new JMenuItem("______");
edition.add(f);
f.addActionListener(this);
ar = new JMenuItem("Retour Arriere");
edition.add(ar);
ar.addActionListener(this);
av = new JMenuItem("Retour Avant");
edition.add(av);
av.addActionListener(this);
f = new JMenuItem("______");
edition.add(f);
f.addActionListener(this);
coup = new JMenuItem("Couper");
edition.add(coup);
coup.addActionListener(this);
cop = new JMenuItem("Copier");
edition.add(cop);
cop.addActionListener(this);
col = new JMenuItem("Coller");
edition.add(col);
col.addActionListener(this);
f = new JMenuItem("______");
edition.add(f);
f.addActionListener(this);
nv = new JMenuItem("Nouvelle Fenetre");
fichier.add(nv);
nv.addActionListener(this);
nv.addActionListener(this);
ov = new JMenuItem("Ouvrir");
fichier.add(ov);
ov.addActionListener(this);
f = new JMenuItem("______");
fichier.add(f);
f.addActionListener(this);
enr = new JMenuItem("Enregistrer");
fichier.add(enr);
enr.addActionListener(this);
enr2 = new JMenuItem("Enregistrer Sous");
fichier.add(enr2);
enr2.addActionListener(this);
f = new JMenuItem("______");
fichier.add(f);
f.addActionListener(this);
imp = new JMenuItem("Imprimer");
fichier.add(imp);
imp.addActionListener(this);
f = new JMenuItem("______");
fichier.add(f);
f.addActionListener(this);
fe = new JMenuItem("Fermer");
fichier.add(fe);
fe.addActionListener(this);
pr = new JMenuItem("Préférence");
aide.add(pr);
pr.addActionListener(this);
ap = new JMenuItem("A Propos");
aide.add(ap);
ap.addActionListener(this);
vr = new JMenuItem("Version");
aide.add(vr);
vr.addActionListener(this);
Container contenu = getContentPane();
contenu.setLayout(new FlowLayout());
this.setTitle("test");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(720, 400);
this.setBackground(Color.white);
this.setLocationRelativeTo(null);
}
public void actionPerformed (ActionEvent ev) {
Object source = ev.getSource();
if(source == nv && fenetre == 1) {
nom = JOptionPane.showInputDialog(null, "Entrez le nom de votre Image", "Création D'image", JOptionPane.QUESTION_MESSAGE);
x2 =JOptionPane.showInputDialog(null, "Entrez la Taille x de Votre image en pixel", "Taille x", JOptionPane.QUESTION_MESSAGE);
y2 =JOptionPane.showInputDialog(null, "Entrez la Taille y de Votre image en pixel", "Taille y", JOptionPane.QUESTION_MESSAGE);
Fenetre fen2 = new Fenetre();
fen2.setVisible(true);
outil fen3 = new outil();
fen3.setVisible(true);
fenetre = 0;
}else{if(source == outil) {
outil fen3 = new outil();
fen3.setVisible(true);
}else{
if(source == fe) {
int quitt =JOptionPane.showConfirmDialog(null, "Etes-Vous sur de Vouloir quitter ?", "Quitter Editeur d'image", JOptionPane.YES_NO_OPTION);
if(quitt == 0) {
this.dispose();
}else {
if(source == fichier) {
}else {
if(source == enr2) {
}
}
}
}
}
}
}
private JMenuBar bar;
private JMenu fichier;
private JMenu aide;
private JMenu edition;
private JMenuItem enr;
private JMenuItem nv;
private JMenuItem ov;
private JMenuItem f;
private JMenuItem enr2;
private JMenuItem imp;
private JMenuItem fe;
private JMenuItem av;
private JMenuItem ar;
private JMenuItem coup;
private JMenuItem cop;
private JMenuItem col;
private JMenuItem outil;
private JMenuItem pr, ap, vr;
public static void main(String[] args) {
// TODO Auto-generated method stub
FenetreTest fen = new FenetreTest();
fen.setVisible(true);
}
} |
Mon outil.java (ma bar d'outil justement)
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| package Fenetre;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class outil extends JFrame implements ActionListener{
public static int outil = 0;
static String[] couleurs = {"Blanc", "Noir", "Rouge", "Vert", "Bleu"};
public static String color = "black";
String[] taillepx = {"1px", "5px", "10px", "30px", "50px"};
public outil() {
this.setSize(200, 500);
Container contenu = getContentPane();
contenu.setLayout(new FlowLayout());
dessin = new JButton(new ImageIcon("src/image/crayon.png"));
contenu.add(dessin, "NORTH");
dessin.setPreferredSize(new Dimension (30, 30));
dessin.addActionListener(this);
supp = new JButton(new ImageIcon("src/image/lasso.png"));
contenu.add(supp, "NORTH");
supp.addActionListener(this);
supp.setPreferredSize(new Dimension (30, 30));
gomme = new JButton(new ImageIcon("src/image/gomme.png"));
contenu.add(gomme, "NORTH");
gomme.setPreferredSize(new Dimension (30, 30));
gomme.addActionListener(this);
couleur = new JButton(new ImageIcon("src/image/crayon.png")); //Le bouttons pour afficher la page
contenu.add(couleur, "NORTH");
couleur.setPreferredSize(new Dimension (30, 30));
couleur.addActionListener(this);
px = new JTextField("Taille", 10);
contenu.add(px, "SOUTH");
px.setEditable(true);
}
public static String pixel;
public static JTextField px;
public static void main(String[] args) {
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Object source = arg0.getSource();
if(source == supp) {
outil = 2;
System.out.println(outil);
}else {
if(source == gomme) {
outil = 3;
System.out.println(outil);
}else {
if(source == dessin) {
outil = 1;
}else {
if(source == couleur) { //Afficher la page des couleurs
Color couleur2 = JColorChooser.showDialog
(null, "couleur du fond", Color.WHITE);
}
}
}
}
}
private JButton dessin,gomme,couleur,supp;
//private JComboBox px;
} |
Mon Fenetre.java (le JFrame de la fenetre ou l'on dessine):
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
| package Fenetre;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Fenetre extends JFrame{
public static int dessin = 0;
public Fenetre(){
int x;
x = Integer.parseInt(FenetreTest.x2);
int y;
y = Integer.parseInt(FenetreTest.y2);
this.setTitle(FenetreTest.nom);
this.setSize(x, y);
this.setLocationRelativeTo(null);
JPanel pan = new JPanel();
getContentPane().add(pan);
pan.setBackground(Color.white);
this.setVisible(true);
this.setResizable(false);
pan.addMouseListener(new dessin (pan));
pan.addMouseMotionListener(new dessin (pan));
}
private JPanel pan;
public static void main(String[] args) {
// TODO Auto-generated method stub
Fenetre fen2 = new Fenetre();
fen2.setVisible(true);
}
} |
Et mon dessin.java (mon JPanel)
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| package Fenetre;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JPanel;
public class dessin extends JPanel implements MouseListener,MouseMotionListener{
public static int x1, y1, x2, y2;
public dessin(JPanel pan) {
this.pan=pan;
}
private JPanel pan;
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void mouseDragged(MouseEvent e) {
String pixel = outil.px.getText();
int px;
px = Integer.parseInt(pixel);
if(outil.outil == 1) {
Graphics g = pan.getGraphics();
//Je veux ici recuperer la couleur du JColorChooser g.setColor();
g.fillOval(e.getX(), e.getY(), px, px);
}else {
if(outil.outil == 3) {
Graphics g = pan.getGraphics();
g.setColor(Color.white);
g.fillOval(e.getX(),e.getY(), px, px);
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
}
private JColorChooser couleur2;
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent ev) {
if(outil.outil == 2) {
x1 = ev.getX();
y1 = ev.getY();
Graphics g = pan.getGraphics();
// Je veux ici recuperer la couleur du JColorChooser g.setColor();
g.fillOval(x1, y1, 1, 1);
}
}
@Override
public void mouseReleased(MouseEvent ev) {
// TODO Auto-generated method stub
if(outil.outil == 2) {
x2 = ev.getX();
y2 = ev.getY();
Graphics g = pan.getGraphics();
//Je veux ici recuperer la couleur du JColorChooser g.setColor();
g.drawLine(x1, y1, x2, y2);
}
}
@Override
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
}
} |
Donc voila j'espere que je pourrais avoir de l'aide pour savoir quoi mettre dans les g.setColor();
Merci D'avance :D
(Ps les public static ne marche pas pour un Color) :calim2:
Bonne journée