Aller au menu - Aller au contenu

TP : l'ardoise maZique

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne Xavierh # Posté le 15/08/2008 à 15:50:37

Tout ce que je peux dire c'est : "préssé d'y être! Je n'en suis pas encore à là mais de voir le screen shoot ça donne nevie :p .
Hors ligne softdounia # Posté le 17/09/2008 à 17:47:11
A
Avatar

Ville : Alger
Pays : Algérie
Études : ETS Montréal

J'ai adoré follement je suie en pleine folie ! :magicien:

Les 40e rugissants et les 50e hurlants. o_O --> Brainstorming --> CamelCase
Image utilisateur

-------------
"je crois qu'on ne peut mieux vivre qu'en chercant à devenir meilleur, ni plus agréablement qu'en ayant pleine conscience de son amélioration"
Socrate >_<
-------------
les meilleurs peintres se sont fait dire qu’ils n’étaient pas bon, aujourd’hui ce sont des Dieux!
-------------
RTFM :-° l'expression anglaise d'argot Internet Read the fucking manual (« Lis le foutu manuel ») ;
-------------
Mon CV en ligne ici
 
Hors ligne Denekar # Posté le 04/03/2009 à 15:14:30

Merci à toi Cysboy, excellente idée!
Hors ligne Babastien # Posté le 24/05/2009 à 07:57:44
The cake is a lie
Avatar

Ville : Genay
Pays : France métropolitaine

Excellent TP avec de très nombreuses possibilités d'amélioration !
Hors ligne soules # Posté le 19/04/2011 à 18:43:13

slt, d'abord merci pour le tuto...j'en ai appris des choses depuis le debut.
Au fait mon problème est que quand je change de couleur, tout ce que j'avais dessiné prend la nouvelle
couleurs!!!
les class Panneau, Point et Fenetre:
Code : Java - Panneau.java
 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
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;

import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class Panneau extends JPanel {
	private Point point = new Point();
	private ArrayList<Point> listPoints = new ArrayList<Point>();
	public void paintComponent(Graphics g){
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, this.getWidth(), this.getHeight());
//		g.fillOval(point.getPosiX(), point.getPosiY(), point.getTaille(), point.getTaille());	
		for(Point p : this.listPoints)
		{
			//On récupère la couleur
			g.setColor(point.getCouleur());
			
			//Selon le type de point
			if(p.getForme().equals("CARRE")){
				g.fillRect(p.getPosiX(), p.getPosiY(), p.getTaille(), p.getTaille());
			}
			else if(p.getForme().equals("ROND")){
				g.fillOval(p.getPosiX(), p.getPosiY(), p.getTaille(), p.getTaille());
			}
		}
	}
	public Panneau(){
		this.addMouseMotionListener(new MouseMotionListener() {
			
			@Override
			public void mouseMoved(MouseEvent arg0) {}
			
			@Override
			public void mouseDragged(MouseEvent arg0) {
				// TODO Auto-generated method stub
					listPoints.add(new Point(point.getCouleur(), point.getTaille(), arg0.getX(), arg0.getY(), point.getForme()));
					repaint();
			}
		});
		this.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				listPoints.add(new Point(point.getCouleur(), point.getTaille(), e.getX(), e.getY(), point.getForme()));				
				repaint();
			}
			
			@Override
			public void mousePressed(MouseEvent e) {}
			@Override
			public void mouseExited(MouseEvent e) {}
			@Override
			public void mouseEntered(MouseEvent e) {}
			@Override
			public void mouseClicked(MouseEvent e) {}
		});
	}
	public void effacerEcran(){
		if ((new JOptionPane()).showConfirmDialog(null, "Voulez-vous effacer l'écran ?", "Effacer", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION){ 
			listPoints = new ArrayList<Point>();
			repaint();
		}
	}
	
	public Point getPoint() {
		return point;
	}
	public void setPoint(Point point) {
		this.point = point;
	}
	public void setListPoints(ArrayList<Point> listPoints) {
		this.listPoints = listPoints;
	}

}

Code : Java - Fenetre.java
  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
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JToolBar;


public class Fenetre extends JFrame {
	//getions de la fenetre
	private JPanel conteneur = new JPanel();
	private BorderLayout bl = new BorderLayout();
	private Panneau pan = new Panneau();
	//*********************************************************************************************
	//Gestion du menu
	private JMenuBar monMenu =  new JMenuBar();
	private JMenu fichier = new JMenu("Fichier");
			private JMenuItem fichier_Effacer = new JMenuItem("Effacer");
			private JMenuItem fichier_Quitter = new JMenuItem("Quitter");
	private JMenu edition = new JMenu("Edition");
			private JMenu formeDuPointeur = new JMenu("Forme du pointeur");
					private JMenuItem pointeurRond = new JMenuItem("Rond");
					private JMenuItem pointeurCarre = new JMenuItem("Carre");
			private JMenu couleurDuPointeur = new JMenu("Couleur du pointeur");
					private JMenuItem couleurRouge = new JMenuItem("Rouge");
					private JMenuItem couleurVert = new JMenuItem("Vert");
					private JMenuItem couleurBleu = new JMenuItem("Bleu");
	//*********************************************************************************************
	//Gestion de la barre d'outils
	private JToolBar barreOutils = new JToolBar();
			private JButton boutonRond = new JButton(new ImageIcon("images/rond.jpg"));
			private JButton boutonCarre = new JButton(new ImageIcon("images/carre.jpg"));
			private JButton boutonRouge = new JButton(new ImageIcon("images/rouge.jpg"));
			private JButton boutonVert = new JButton(new ImageIcon("images/vert.jpg"));
			private JButton boutonBleu = new JButton(new ImageIcon("images/bleu.jpg"));
	//*********************************************************************************************
	//gestion des evenements
	FormeListerner fl = new FormeListerner(); 
	CouleurListener cl = new CouleurListener();
	
	public Fenetre(){
		initFenetre();
		initMenu();
		initToolBar();
		this.conteneur.setLayout(bl);
		conteneur.add(barreOutils, BorderLayout.NORTH);
		conteneur.add(pan, BorderLayout.CENTER);
		
		
		this.setContentPane(conteneur);
		this.setJMenuBar(monMenu);
		this.setVisible(true);
	}
	
	
	//initialisation de la fenetre
	private void initFenetre(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(1024, 700);		
		this.setLocationRelativeTo(null);
		this.setTitle("Ardoize Mazique");	
		this.setResizable(false);
	}
	//initialisation du menu
	private void initMenu(){
		couleurDuPointeur.add(couleurBleu);
		couleurDuPointeur.add(couleurRouge);
		couleurDuPointeur.add(couleurVert);
		formeDuPointeur.add(pointeurRond);
		formeDuPointeur.add(pointeurCarre);
		edition.add(formeDuPointeur);
		edition.add(couleurDuPointeur);
		fichier.add(fichier_Effacer);
		fichier.add(fichier_Quitter);
		monMenu.add(fichier);
		monMenu.add(edition);
		fichier_Quitter.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				JOptionPane jop = new JOptionPane();
				int option = jop.showConfirmDialog(null, "Voulez-vous quitter l'application ?", "Quitter", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
				if (option == JOptionPane.OK_OPTION)
					System.exit(0);
			}
		});
		fichier_Effacer.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				pan.effacerEcran();
			}
		});
		
		pointeurRond.addActionListener(fl);
		pointeurCarre.addActionListener(fl);
		couleurBleu.addActionListener(cl);
		couleurVert.addActionListener(cl);
		couleurRouge.addActionListener(cl);
		
		
	}
	private void initToolBar(){
		barreOutils.add(boutonRond);
		barreOutils.add(boutonCarre);
		barreOutils.addSeparator();
		barreOutils.add(boutonBleu);
		barreOutils.add(boutonRouge);
		barreOutils.add(boutonVert);
		boutonBleu.addActionListener(cl);
		boutonRouge.addActionListener(cl);
		boutonVert.addActionListener(cl);
		barreOutils.setVisible(true);
	}
	
	private class FormeListerner implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getSource() == pointeurRond){
				Point pointPrime = pan.getPoint();
				pointPrime.setForme("ROND");
				pan.setPoint(pointPrime);
			}
			if(e.getSource() == pointeurCarre){
				Point pointPrime = pan.getPoint();
				pointPrime.setForme("CARRE");
				pan.setPoint(pointPrime);
			}
			if(e.getSource() == boutonCarre)
				pointeurCarre.doClick();
			if(e.getSource() == boutonRond)
				pointeurRond.doClick();
		}
		
	}
	private class CouleurListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent arg0) {
			if(arg0.getSource() == couleurBleu){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.BLUE);
				pan.setPoint(pointPrime);
			}
			if(arg0.getSource() == couleurRouge){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.RED);
				pan.setPoint(pointPrime);
			}if(arg0.getSource() == couleurVert){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.GREEN);
				pan.setPoint(pointPrime);
			}
			if(arg0.getSource() == boutonBleu)
				couleurBleu.doClick();
			if(arg0.getSource() == boutonRouge)
				couleurRouge.doClick();
			if(arg0.getSource() == boutonVert)
				couleurVert.doClick();
		}
		
	}

	
}

Code : Java - Point.java
 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
import java.awt.Color;


public class Point {
	private Color couleur = new Color(Color.OPAQUE);
	private int taille;
	private int posiX;
	private int posiY;
	private String forme = new String();
	public Color getCouleur() {
		return couleur;
	}
	public void setCouleur(Color couleur) {
		this.couleur = couleur;
	}
	public int getTaille() {
		return taille;
	}
	public void setTaille(int taille) {
		this.taille = taille;
	}
	public int getPosiX() {
		return posiX;
	}
	public void setPosiX(int posiX) {
		this.posiX = posiX;
	}
	public int getPosiY() {
		return posiY;
	}
	public void setPosiY(int posiY) {
		this.posiY = posiY;
	}
	public void setForme(String forme) {
		this.forme = forme;
	}
	public String getForme() {
		return forme;
	}
	public Point(){
		this.couleur = Color.BLUE;
		this.taille = 10;
		this.posiX = 50;
		this.posiY = 50;
		this.forme = "CARRE";
	}
	public Point(Color couleur, int taille, int posiX, int posiY, String forme){
		this.couleur = couleur;
		this.forme = forme;
		this.taille = taille;
		this.posiX = posiX;
		this.posiY = posiY;
	}
}


merci d'avance!
Hors ligne Blocks # Posté le 31/07/2011 à 02:59:51
Avatar

Yo. Réponse tardive mais réponse quand même.

Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
for(Point p : this.listPoints)
		{
			//On récupère la couleur
			g.setColor(point.getCouleur());
			
			//Selon le type de point
			if(p.getForme().equals("CARRE")){
				g.fillRect(p.getPosiX(), p.getPosiY(), p.getTaille(), p.getTaille());
			}
			else if(p.getForme().equals("ROND")){
				g.fillOval(p.getPosiX(), p.getPosiY(), p.getTaille(), p.getTaille());
			}
		}


Remplacer :
Code : Java
1
g.setColor(point.getCouleur());

Par :
Code : Java
1
g.setColor(p.getCouleur());


A part ça, une remarque :
Code : Pascal
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void actionPerformed(ActionEvent arg0) {
			if(arg0.getSource() == couleurBleu){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.BLUE);
				pan.setPoint(pointPrime);
			}
			if(arg0.getSource() == couleurRouge){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.RED);
				pan.setPoint(pointPrime);
			}if(arg0.getSource() == couleurVert){
				Point pointPrime = pan.getPoint();
				pointPrime.setCouleur(Color.GREEN);
				pan.setPoint(pointPrime);
			}
			if(arg0.getSource() == boutonBleu)
				couleurBleu.doClick();
			if(arg0.getSource() == boutonRouge)
				couleurRouge.doClick();
			if(arg0.getSource() == boutonVert)
				couleurVert.doClick();
		}


Ça pique moins les yeux comme ça :
Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public void actionPerformed(ActionEvent arg0) {
			if(arg0.getSource() == couleurBleu)
				pan.getPoint().setCouleur(Color.BLUE);
			else if(arg0.getSource() == couleurRouge)
				pan.getPoint().setCouleur(Color.RED);
			else if(arg0.getSource() == couleurVert)
				pan.getPoint().setCouleur(Color.GREEN);
			else if(arg0.getSource() == boutonBleu)
				pan.getPoint().setCouleur(Color.BLUE);
			else if(arg0.getSource() == boutonRouge)
				pan.getPoint().setCouleur(Color.RED);
			else if(arg0.getSource() == boutonVert)
				pan.getPoint().setCouleur(Color.GREEN);
		}


Les objets sont retournés par référence. Tu n'as donc pas besoin de faire un setMachin par derrière :).

Autoproclamé ~Chevalier des Edits.
 
Connecté drivedric # Posté le 21/08/2011 à 02:10:50
Libérez-nous des libéraux
Avatar
Newsers

Il devait avoir trouvé depuis le temps. ^^
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx