Bonjour,
Je souhaite stocker une constante couleur (Color.WHITE par exemple) dans une variable.
Mon but est de pouvoir avoir une variable couleur, qui puisse changer.
Cependant je ne sais pas du tout comment m'y prendre...
Bonjour,
Je souhaite stocker une constante couleur (Color.WHITE par exemple) dans une variable.
Mon but est de pouvoir avoir une variable couleur, qui puisse changer.
Cependant je ne sais pas du tout comment m'y prendre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Color variable_color = Color.BLACK;
Le plus simplement du monde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Color mavariable = Color.WHITE;
C'est Android, PAS Androïd, ou Androïde didiou !
Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.
Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.
N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android
Ah oui merci tout simplement (je cherchais à faire un new).
Rien à voir, mais comment je peux accéder à une variable que j'ai crée dans une autre classe (qui est pourtant public).
J'ai justement une variable couleur dans une classe, et dans une instance crée à partir de cette classe, je veux récupérer cette variable ... (je sais pas si j'ai été clair :s )
Crée une méthode qui te retourne cet attribut.
Ce genre de méthode est appelé un getter, et est nommé par convention "getNomVariableRetournée".
De plus, change la visibilité de ton attribut en privé. Dans la plupart des cas, il vaut mieux que ce soit le cas.
C'est Android, PAS Androïd, ou Androïde didiou !
Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.
Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.
N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android
Merci, mais ca ne marche pas :s
En gros j'ai 4 classes:
*Main, ou j'instancie une Fenetre (qui s'apelle fenetre)
*Fenetre, qui étend une JFrame, ou j'ai cette variable Color, et ou je crée une Grille (grille)
*Grille, qui étend JPanel, ou je crée une grille avec des Cases
*Case, qui étend JPanel, ou je veux récupérer la variable couleur de fenetre.
Si dans case je fais un fenetre.getCouleur() j'obtient un cannot find symbol (il ne connait pas fenetre)
(En fait je pense que si Case étendait Fenetre, ca marcherait mais ce n'est pas le cas ...)
j'ai raccourci un peu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Main{ public static void main(String[] args){ Fenetre fenetre = new Fenetre(30 , 30); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class Fenetre extends JFrame implements ActionListener{ private int nbCasesLargeur , nbCasesHauteur; private Color couleurPinceau = Color.WHITE; public Fenetre(int _nbCasesLargeur , int _nbCasesHauteur){ nbCasesLargeur = _nbCasesLargeur; nbCasesHauteur = _nbCasesHauteur; //Initialisation de la fenêtre this.setTitle("mon titre"); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Création de la grille Grille grille = new Grille(nbCasesLargeur , nbCasesHauteur); this.setLayout(grille) this.pack(); this.setVisible(true); } public Color getCouleurPinceau(){ return couleurPinceau; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Grille extends JPanel{ private int nbCasesLargeur , nbCasesHauteur; private Case[][] grille; public Grille(int _nbCasesLargeur , int _nbCasesHauteur){ nbCasesLargeur = _nbCasesLargeur; nbCasesHauteur = _nbCasesHauteur; grille = new Case[this.nbCasesHauteur][this.nbCasesLargeur]; this.setLayout(new GridLayout(this.nbCasesHauteur , this.nbCasesLargeur)); for(int i = 0 ; i < this.nbCasesHauteur ; i++){ for(int j = 0 ; j < this.nbCasesLargeur ; j++){ grille[i][j] = new Case(i , j); this.add(grille[i][j]); } } } }Le problème est pour les deux lignes de la classe Case:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public class Case extends JPanel implements MouseListener{ private int i , j; private Color couleurCase;//Départ:GREEN , Arrivée:RED , Vide:WHITE , Mur:BLACK public Case(int _i , int _j){ i = _i; j = _j; couleurCase = Color.WHITE; this.setBorder(BorderFactory.createLineBorder(Color.BLACK)); this.setBackground(Color.WHITE); this.addMouseListener(this); } public Case(){ this(0 , 0); } public void mouseClicked(MouseEvent event){//Clic souris } public void mouseEntered(MouseEvent event){//Survol souris } public void mouseExited(MouseEvent event){//Sortie zone } public void mousePressed(MouseEvent event){//Presse clic gauche this.setBackground(fenetre.getCouleurPinceau()); couleurCase = fenetre.getCouleurPinceau(); } public void mouseReleased(MouseEvent event){//Relache clic } public int getI(){ return i; } public int getJ(){ return j; } public Color getCouleurCase(){ return couleurCase; } }
this.setBackground(fenetre.getCouleurPinceau());
couleurCase = fenetre.getCouleurPinceau();
il faut que tu passe une référence de fenetre a case par exemple :
en modifiant ton constructeur case
Code : Sélectionner tout - Visualiser dans une fenêtre à part Grille grille = new Grille(nbCasesLargeur , nbCasesHauteur,this);
ou en ajoutant un setteur de fenetre à ta class Case
Code : Sélectionner tout - Visualiser dans une fenêtre à part public Grille(int _nbCasesLargeur , int _nbCasesHauteur,Fenetre fenetre ){
Erf oui merci beaucoup, j'ai fais pas mal de modifs mais mon programme marche
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager