Problème Compilation JAVA
Résolu/Fermé
A voir également:
- Problème Compilation JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
6 réponses
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 21/12/2011 à 16:06
Modifié par matthoffman le 21/12/2011 à 16:06
Re,
Question bete: dans la classe ou tu fais appel a ConvertRouge(iv1), as tu bien mis au debut de ton fichier Graphique.java:
import RGB.java ? :)
Question bete: dans la classe ou tu fais appel a ConvertRouge(iv1), as tu bien mis au debut de ton fichier Graphique.java:
import RGB.java ? :)
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
21 déc. 2011 à 16:06
21 déc. 2011 à 16:06
Bonjour,
Il nous faudrait le code de la classe Graphique.java, et surtout la ligne 21 sur laquelle se produit l'erreur.
Et également l'erreur complète.
Il nous faudrait le code de la classe Graphique.java, et surtout la ligne 21 sur laquelle se produit l'erreur.
Et également l'erreur complète.
import java.awt.*;
import java.awt.event.*;
public class Graphique extends Frame{
private static final int LARGEUR = 800;
private static final int HAUTEUR = 400;
private Button RGBtoCMY = new Button("RGBtoCMY");
private Button CMYtoRGB = new Button("CMYtoRGB");
private CercleCouleur C1;
private Panel p1,p2,p3,p4;
private TextArea f1,f2,f3,t1,t2,t3;
private Label l;
public class Action1 implements ActionListener{
public void actionPerformed(ActionEvent e1){
String v1 = f1.getText();
int Iv1 = Integer.parseInt(v1);
t1.setText(""+ConvertRouge(Iv1)+"");
String v2 = f2.getText();
t2.setText(v2);
String v3 = f3.getText();
t3.setText(v3);
}
}
public class Action2 implements ActionListener{
public void actionPerformed(ActionEvent e2){
String w1 = t1.getText();
f1.setText(w1);
String w2 = t2.getText();
f2.setText(w2);
String w3 = t3.getText();
f3.setText(w3);
}
}
public class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
public Graphique(){
addWindowListener(new MyWindowListener());
setSize(LARGEUR,HAUTEUR);
setBackground(Color.gray);
setForeground(Color.black);
setLayout(new GridLayout(3,3));
f1 = new TextArea();
//f1.setEditable(false);
f2 = new TextArea();
//f2.setEditable(false);
f3 = new TextArea();
//f3.setEditable(false);
t1 = new TextArea();
//t1.setEditable(false);
t2 = new TextArea();
//t2.setEditable(false);
t3 = new TextArea();
//t3.setEditable(false);
Panel p1 = new Panel(new GridLayout(1,3));
p1.add(f1);
p1.add(f2);
p1.add(f3);
Panel p2 = new Panel(new GridLayout(1,3));
p2.add(t1);
p2.add(t2);
p2.add(t3);
add(p1);
RGBtoCMY.addActionListener(new Action1());
add(RGBtoCMY);
Panel p3 = new Panel(new BorderLayout());
Label l = new Label("Ceci est la couleur en RGB : ");
p3.add(l, BorderLayout.CENTER);
add(p3);
Panel p4 = new Panel(new BorderLayout());
C1 = new CercleCouleur(Color.green, 135, 10);
p4.add(C1, BorderLayout.CENTER);
add(p4);
add(p2);
CMYtoRGB.addActionListener(new Action2());
add(CMYtoRGB);
//pack();
setVisible(true);
}
public static void main(String[]args){
Graphique G = new Graphique();
System.out.println(G);
}
}
Et pour le code de l'erreur :
Graphique.java.21: cannot find symbol
symbol: method ConvertRouge(int)
location: class Graphique.Action1
t1.setText(""+ConvertRouge+""); (c'est là que se trouve l'erreur)
Voilà.
import java.awt.event.*;
public class Graphique extends Frame{
private static final int LARGEUR = 800;
private static final int HAUTEUR = 400;
private Button RGBtoCMY = new Button("RGBtoCMY");
private Button CMYtoRGB = new Button("CMYtoRGB");
private CercleCouleur C1;
private Panel p1,p2,p3,p4;
private TextArea f1,f2,f3,t1,t2,t3;
private Label l;
public class Action1 implements ActionListener{
public void actionPerformed(ActionEvent e1){
String v1 = f1.getText();
int Iv1 = Integer.parseInt(v1);
t1.setText(""+ConvertRouge(Iv1)+"");
String v2 = f2.getText();
t2.setText(v2);
String v3 = f3.getText();
t3.setText(v3);
}
}
public class Action2 implements ActionListener{
public void actionPerformed(ActionEvent e2){
String w1 = t1.getText();
f1.setText(w1);
String w2 = t2.getText();
f2.setText(w2);
String w3 = t3.getText();
f3.setText(w3);
}
}
public class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
public Graphique(){
addWindowListener(new MyWindowListener());
setSize(LARGEUR,HAUTEUR);
setBackground(Color.gray);
setForeground(Color.black);
setLayout(new GridLayout(3,3));
f1 = new TextArea();
//f1.setEditable(false);
f2 = new TextArea();
//f2.setEditable(false);
f3 = new TextArea();
//f3.setEditable(false);
t1 = new TextArea();
//t1.setEditable(false);
t2 = new TextArea();
//t2.setEditable(false);
t3 = new TextArea();
//t3.setEditable(false);
Panel p1 = new Panel(new GridLayout(1,3));
p1.add(f1);
p1.add(f2);
p1.add(f3);
Panel p2 = new Panel(new GridLayout(1,3));
p2.add(t1);
p2.add(t2);
p2.add(t3);
add(p1);
RGBtoCMY.addActionListener(new Action1());
add(RGBtoCMY);
Panel p3 = new Panel(new BorderLayout());
Label l = new Label("Ceci est la couleur en RGB : ");
p3.add(l, BorderLayout.CENTER);
add(p3);
Panel p4 = new Panel(new BorderLayout());
C1 = new CercleCouleur(Color.green, 135, 10);
p4.add(C1, BorderLayout.CENTER);
add(p4);
add(p2);
CMYtoRGB.addActionListener(new Action2());
add(CMYtoRGB);
//pack();
setVisible(true);
}
public static void main(String[]args){
Graphique G = new Graphique();
System.out.println(G);
}
}
Et pour le code de l'erreur :
Graphique.java.21: cannot find symbol
symbol: method ConvertRouge(int)
location: class Graphique.Action1
t1.setText(""+ConvertRouge+""); (c'est là que se trouve l'erreur)
Voilà.
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
21 déc. 2011 à 16:42
21 déc. 2011 à 16:42
Il y a des erreurs dans ton code.
Tu déclares une première class Graphique et sans la fermer avec un }, tu déclares à l'intérieur de celle-ci une autre classe, déjà ça ne fonctionne pas.
Et encore tu as déclaré toutes tes classes Action, à l'intérieur de la classe Graphique.java.
Pour que cela soit plus simple, il est préférable de déclarer un fichier .java par classe, et surtout ne pas incorporer le code d'une classe dans une autre, ça ne peut pas fonctionner.
Tu déclares une première class Graphique et sans la fermer avec un }, tu déclares à l'intérieur de celle-ci une autre classe, déjà ça ne fonctionne pas.
Et encore tu as déclaré toutes tes classes Action, à l'intérieur de la classe Graphique.java.
Pour que cela soit plus simple, il est préférable de déclarer un fichier .java par classe, et surtout ne pas incorporer le code d'une classe dans une autre, ça ne peut pas fonctionner.
Mon parenthèsage est bon (toutes les accolades sont férmées si tu regardes bien) et il n'y a aucun problème en java à déclarer des classes à l'intérieur d'une autre classe, elles seront juste compilées en Graphique$Action1.class (par exemple). De plus, sans la méthode Convert tout compilait et s'exécutait très bien, donc je ne pense pas que le problème vienne de là ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
21 déc. 2011 à 16:54
21 déc. 2011 à 16:54
Non tes parenthèses ne sont pas bonnes :
public class Graphique extends Frame{
private static final int LARGEUR = 800;
private static final int HAUTEUR = 400;
private Button RGBtoCMY = new Button("RGBtoCMY");
private Button CMYtoRGB = new Button("CMYtoRGB");
private CercleCouleur C1;
private Panel p1,p2,p3,p4;
private TextArea f1,f2,f3,t1,t2,t3;
private Label l;
public class Action1 implements ActionListener{
Tu m'excuseras mais ta classe n'est pas fermée avant la deuxième ... et toutes tes classes sont déclarées dans la première
public class Graphique extends Frame{
private static final int LARGEUR = 800;
private static final int HAUTEUR = 400;
private Button RGBtoCMY = new Button("RGBtoCMY");
private Button CMYtoRGB = new Button("CMYtoRGB");
private CercleCouleur C1;
private Panel p1,p2,p3,p4;
private TextArea f1,f2,f3,t1,t2,t3;
private Label l;
public class Action1 implements ActionListener{
Tu m'excuseras mais ta classe n'est pas fermée avant la deuxième ... et toutes tes classes sont déclarées dans la première
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
Modifié par arth le 21/12/2011 à 17:13
Modifié par arth le 21/12/2011 à 17:13
Sauf que tu n'as pas importé ta classe RGB ni même crée d'objet RGB, donc pas possible d'appeler une fonction inexistante.
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 21/12/2011 à 17:19
Modifié par matthoffman le 21/12/2011 à 17:19
Ouais ba ca risque pas de fonctionner comme ca ^^.
Ta methode fait partie de l'objet RGB. Tu connais l'objet RGB, mais pour connaitre ce qu'il y a dans l'objet RGB, encore faudrait il pouvoir y acceder non ? ;)
Donc ce qu'il faut que tu fasses:
1) Ton appel doit se faire comme ceci:
2) Etant donne que tu veux appeler une fonction d'une classe sans en avoir instancie l'objet, il te faudra changer le prototype de ta fonction en rajoutant le mot cle "static":
Voila ca devrait marcher maintenant ;)
Ta methode fait partie de l'objet RGB. Tu connais l'objet RGB, mais pour connaitre ce qu'il y a dans l'objet RGB, encore faudrait il pouvoir y acceder non ? ;)
Donc ce qu'il faut que tu fasses:
1) Ton appel doit se faire comme ceci:
RGB.ConvertRouge(Iv1)
2) Etant donne que tu veux appeler une fonction d'une classe sans en avoir instancie l'objet, il te faudra changer le prototype de ta fonction en rajoutant le mot cle "static":
public static int ConvertRouge(int Rouge){
Voila ca devrait marcher maintenant ;)
21 déc. 2011 à 16:37
21 déc. 2011 à 16:52
Je pourrais avoir le prototype de ta classe RGB et ta fonction stp ?
21 déc. 2011 à 17:04
public class RGB extends Couleur{
public RGB(int R,int G,int B){
super(R,G,B);
}
public void additionner(int Red,int Green,int Blue){
if ((Red<0 || Green <0 || Blue<0) || (Red>(255-x) || Green>(255-y) || Blue >(255-y))){
System.out.println("coucou le bug");
}
else{
x+=Red;
y+= Green;
z+=Blue;
}
}
public double distance(RGB c){
double distance;
distance = Math.sqrt(Math.pow(this.x-c.x,2)+Math.pow(this.y-c.y,2)+Math.pow(this.z-c.z,2));
return distance;
}
public int ConvertRouge(int Rouge){
int C = ((255 - Rouge)*100)/255;
return C;
}
public void ConvertGreen(int Green){
int M = ((255 - Green)*100)/255;
}
public void ConvertBleu(int Bleu){
int Y = ((255 - Bleu)*100)/255;
}
public String toString(){
String s="La composante rouge est "+x+"\n"+"La composante verte est "+y+"\n"+"La composante Bleu est "+z+"\n";
return s;
}
}
Voilà