1 pièce(s) jointe(s)
[Débutant] Ardoise Magique
Bonjour,
Je suis entrain de faire un TP,oul'on me demande de creer une ardoise magique.
Tout d'abrod voila ce que j'obtiens:
Pièce jointe 145211
Comme vous le voyez tout fonctionne bien sauf que:
1-Des que je commence a dessiner la 2eme barre de menu apparer
2-Je n'arrive pas a changer la forme du pointeur.
Pour le "prb1" ,j'ai compris qu'en faite les 2 barres de menu se peignaient sur le JPanel,et pas sur la JFrame,j'ai essaye differentes methodes pour bien lui faire comprendre que les barres de menu devaient s'ajouter a "pan" et non pas a "JPan1",mais sans succes.
Je vous mets tour mon code au cas ou.
Voici mon code:
Classe Fenetre:
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
| public class Fenetre extends JFrame implements MouseMotionListener {
//
public JPanel pan=new JPanel();
private Panneau JPan1 =new Panneau();
public Fenetre(){
this.setTitle("TP-Ardoise Magique");
this.setSize(700, 700);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLayout(new BorderLayout());//indique qu'il faut prendre compte le positionnemt des touches
getContentPane().add(pan);//ajout du JPanel pour le rendre visible
//Menu
this.initMenu();
this.initToolBar();
pan.add(JPan1);
JPan1.addMouseMotionListener(this);
//rendre visible
this.setVisible(true);
}
//---------------------------------------------------Menu-------------------------------------------------------
private JMenuBar menuBar1 = new JMenuBar();
//
private JMenu fichier=new JMenu("Fichier");
private JMenuItem effacer=new JMenuItem("Effacer");
//
private JMenu tPointeur=new JMenu("Pointeur");//taille du pointeur//********
private JCheckBox p_petit = new JCheckBox("taille petite");//p=pointeur
private JCheckBox p_grand = new JCheckBox("taille grande");
//
private JMenuItem quitter=new JMenuItem("Quitter");
//
private JMenu edition=new JMenu("Edition");
private JMenu p_Forme=new JMenu("Forme du Pointeur");//p=pointeur
private JMenuItem rond=new JMenuItem("Rond");
private JMenuItem carre=new JMenuItem("Carre");
private JMenu p_Couleur=new JMenu("Couleur du Pointeur");//
private JMenuItem rouge=new JMenuItem("Rouge");
private JMenuItem vert=new JMenuItem("Vert");
private JMenuItem bleu=new JMenuItem("Bleu");
public void initMenu() {
//
this.menuBar1.add(fichier);
effacer.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.repaint();
}
});
effacer.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));//Accelerateur
this.fichier.add(effacer);
//
this.fichier.add(tPointeur);
p_grand.setSelected(true);//
p_petit.addActionListener(new ActionListener(){//Definit la taille du pointeur
public void actionPerformed(ActionEvent event){
p_grand.setSelected(false);
JPan1.setTailleX(20);
JPan1.setTailleY(20);
}
});
this.tPointeur.add(p_petit);
p_grand.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
p_petit.setSelected(false);
JPan1.setTailleX(50);
JPan1.setTailleY(50);
}
});
this.tPointeur.add(p_grand);
//
this.fichier.addSeparator();
//
quitter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
});
quitter.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));//Accelerateur
this.fichier.add(quitter);
//
this.menuBar1.add(edition);//
this.edition.add(p_Forme);//
rond.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setCarreB(false);
}
});
this.p_Forme.add(rond);
carre.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setCarreB(true);
}
});
this.p_Forme.add(carre);
//
this.edition.addSeparator();
//
this.edition.add(p_Couleur);//
rouge.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(1);
}
});
this.p_Couleur.add(rouge);
vert.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(2);
}
});
this.p_Couleur.add(vert);
bleu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(0);
}
});
this.p_Couleur.add(bleu);
//
//Ajout de la barre de menus sur la fenêtre
this.setJMenuBar(menuBar1);
}
//
private JToolBar toolBar=new JToolBar();
//
private JButton tB_Carre =new JButton(new ImageIcon("img/carre.png"));//tB=tool bar
private JButton tB_Rond =new JButton(new ImageIcon("img/rond.png"));
private JButton c_Bleu =new JButton(new ImageIcon("img/bleu.png"));
private JButton c_Rouge =new JButton(new ImageIcon("img/rouge.png"));
private JButton c_Vert =new JButton(new ImageIcon("img/vert.png"));
//
public void initToolBar(){
//
tB_Carre.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setCarreB(true);
}
});
this.toolBar.add(tB_Carre);
tB_Rond.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setCarreB(false);
}
});
this.toolBar.add(tB_Rond);
this.toolBar.addSeparator();
//
c_Bleu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(0);
}
});
this.toolBar.add(c_Bleu);
c_Rouge.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(1);
}
});
this.toolBar.add(c_Rouge);
c_Vert.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JPan1.setXc(2);
}
});
this.toolBar.add(c_Vert);
//
//ajout de la toolBar
this.add(toolBar, BorderLayout.NORTH);
}
//---------------------------------------------------FIN:Menu-------------------------------------------------------
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
int newX=e.getX(),newY=e.getY();
JPan1.setPosX(newX);
JPan1.setPosY(newY);
JPan1.getGraphics();
JPan1.repaint();
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
int x = e.getX();
int y = e.getY();
System.out.println(x);
System.out.println(y);
}
//------------------------------------------
//------------------------------------------
} |
Classe Panneau:
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
| public class Panneau extends JPanel {
public boolean carreB=true;
public void paintComponent(Graphics g){
if(carreB=true){
g.setColor(couleur [x_c]);//c=couleur
g.fillRect(posX, posY, tailleX, tailleY);
}else{
System.out.println("carre=>faux");
}
if(carreB=false){
g.setColor(couleur [x_c]);//c=couleur
g.fillOval(posX, posY, 50, 50);
}else{
System.out.println("rond=>faux");
}
}
//Dimension
int tailleX,tailleY;
public int getTailleX(){
return tailleX;
}
public void setTailleX(int tailleX){
this.tailleX=tailleX;
}
public int getTailleY(){
return tailleY;
}
public void setTailleY(int tailleY){
this.tailleY=tailleY;
}
//Pointeur
public boolean getCarreB(){
return carreB;
}
public void setCarreB(boolean carreB){
this.carreB=carreB;
}
//Couleur
public int x_c;
public int getXc(){
return x_c;
}
public void setXc(int X_c){
this.x_c=X_c;
}
Color couleur []={Color.blue,Color.red,Color.green};
//
private int posX,posY;
//
public int getPosX(){
return posX;
}
public void setPosX(int posX){
this.posX=posX;
}
//
public int getPosY(){
return posY;
}
public void setPosY(int posY){
this.posY=posY;
}
} |
Voila Merci de votre aide .
A+