[Résolu]Impossible de créer un objet CardLayout ???

Impossible de créer un objet CardLayout ??? [Résolu] - Java - Programmation

Marsh Posté le 10-09-2003 à 11:43:49    

Voici mon minuscule prog dont le nom de fichier est "temp.java":

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class temp extends JFrame{
  5. public temp()
  6. {
  7. super("test" );
  8. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  9. CardLayout l=new CardLayout();
  10. }
  11. public static void main(String[] arguments)
  12. {
  13. }
  14. }


Quand je compile, il me dit que "class Car is public, should be declared in a file named Car.java" alors que ça concernait carrément un autre fichier java que j'avais compilé il y a 2 jours !! bref javac a l'air de déconner pas mal dès lors que je veux créer un objet CardLayout ??? Mais pourquoi ???
 
"Cannot access CardLayout"
"bad class file: .\CardLayout.java"
"file does not contain class CardLayout"
"Please remove or make sure it appears in the correct subdirectory of the class path"
 
Et quand j'enlève la ligne "CardLayout l=new CardLayout(); ", il compile parfaitement ! Aurais je oublié d'inclure un package ?!


Message édité par neo9205 le 11-09-2003 à 13:11:12
Reply

Marsh Posté le 10-09-2003 à 11:43:49   

Reply

Marsh Posté le 10-09-2003 à 12:16:44    

non, pas de package oublie...
ca compile tres bien chez moi, a mon avis l'erreur vient d'ailleurs  [:spamafote]  
 
genre, c'est quoi ton environnement ? tu serais pas sous linux avec Blackdawn ?

Reply

Marsh Posté le 10-09-2003 à 14:04:05    

souk a écrit :

non, pas de package oublie...
ca compile tres bien chez moi, a mon avis l'erreur vient d'ailleurs  [:spamafote]  
 
genre, c'est quoi ton environnement ? tu serais pas sous linux avec Blackdawn ?


 
Non non meme pas,je suis sous Windows XP avec le SDK de Sun.
Mais j'ai résolu mon problème :
j'ai ajouté ça:

Code :
  1. import java.awt.CardLayout;

en plus de ça :

Code :
  1. import java.awt.*;

et du coup ça fonctionne !! Une explication ??


Message édité par neo9205 le 10-09-2003 à 14:05:01
Reply

Marsh Posté le 10-09-2003 à 14:27:05    

ben non, c'est pas normal  [:spamafote]


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
Reply

Marsh Posté le 10-09-2003 à 14:42:00    

T'aurais pas déclarer une classe nommée CardLayout ou un fichier CardLayout.java ???
c'est ce qu'indique l'erreur ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2003 à 17:43:50    

benou a écrit :

T'aurais pas déclarer une classe nommée CardLayout ou un fichier CardLayout.java ???
c'est ce qu'indique l'erreur ...


 
Si j'ai déja un fichier "CardLayout.java" mais il n'a rien à voir avec mon fichier actuel ! :pt1cable:

Reply

Marsh Posté le 10-09-2003 à 18:05:21    

neo9205 a écrit :


 
Si j'ai déja un fichier "CardLayout.java" mais il n'a rien à voir avec mon fichier actuel ! :pt1cable:  


ben visiblement, c'est celui là qu'il essaye d'utiliser, donc ca ne doit pas avoir tant que ca rien à voir ...
 
j'ai relu ton post, c'est quoi ton histoire de fichier Car.java ??
 
remarque en passant : pas de nom de classe commençant par une minuscule !!! :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2003 à 21:45:49    

neo9205 a écrit :


 
Si j'ai déja un fichier "CardLayout.java" mais il n'a rien à voir avec mon fichier actuel ! :pt1cable:  

il est dans le même package que ton fichier actuel ?


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-09-2003 à 21:58:04    

noldor a écrit :

il est dans le même package que ton fichier actuel ?

il a pas de packages. (voir source)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-09-2003 à 22:09:41    

the real moins moins a écrit :

il a pas de packages. (voir source)

ah ben oui !
:jap:


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-09-2003 à 22:09:41   

Reply

Marsh Posté le 11-09-2003 à 00:13:13    

the real moins moins a écrit :

il a pas de packages. (voir source)


et en plus il contient pas la classe CardLayout  :pfff:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 09:06:26    

noldor a écrit :

il est dans le même package que ton fichier actuel ?


 
Non ,il est dans le meme dossier, je ne construit pas encore mes propres packages !! :(

Reply

Marsh Posté le 11-09-2003 à 09:08:29    

benou a écrit :


ben visiblement, c'est celui là qu'il essaye d'utiliser, donc ca ne doit pas avoir tant que ca rien à voir ...
 
j'ai relu ton post, c'est quoi ton histoire de fichier Car.java ??
 
remarque en passant : pas de nom de classe commençant par une minuscule !!! :o
 


 
Pour le fichier Car.java, c'est tout simplement une autre création de classe (qui hérite de JFrame) que j'ai fait...,bref, rien à voir avec la compilation de mon fichier actuel (javac temp.java).
 
Par contre pour la majuscule à chaque début de non de classe ,c'est retenu  :jap:


Message édité par neo9205 le 11-09-2003 à 09:09:54
Reply

Marsh Posté le 11-09-2003 à 09:12:39    

si il essaye de compiler Car, c'est surement qu'il y a une dépendance quelque part vers cette classe...
 
il faudrait aussi que tu nommes autrement la classe CardLayout : c'est pas une bonne idée d'utiliser des noms de classes existant dans l'API java


Message édité par benou le 11-09-2003 à 09:12:59

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 09:24:41    

Etant donné que maintenant ça compile bien, j'essaye toujours de créer une interface de type CardLayout : (en fait je veux faire une fenetre du type des onglets système des propriétés de Windows).
 
Je créé donc 2 boutons pour avoir 2 onglets, puis 2 panneaux(volets de contenu),1 objet CardLayout, puis j'ajoute un bouton à chaque panneau,ensuite je lie le gestionnaire d'interface à 1 panneau (jusque là tout vas bien).Mais quand je veux mettre ça :l.show(this,"carte1" ); ça compile mais le programme plante au lancement  :pfff:  
 
Vous auriez pas un exemple de création à me donner car je n'arrive pas à obtenir un conteneur d'objets CardLayout :jap:  
 

Code :
  1. JPanel pane=new JPanel();
  2. JPanel pa=new JPanel();
  3. JButton button1=new JButton("Onglet1" );
  4. JButton button2=new JButton("Onglet2" );
  5. CardLayout l=new CardLayout();
  6. pa.add(button2);
  7. pane.add(button1);//ajouter d'abord les composants au panneau
  8. pane.setLayout(l);//lier le gestionnaire d'interface au panneau
  9. //pa.setlayout(l);
  10. pane.add("carte1",pa);//ajoute un panneau "pa"à un conteneur "carte1"
  11. setContentPane(pane);
  12. //l.show(this,"carte1" );


Message édité par neo9205 le 11-09-2003 à 09:28:50
Reply

Marsh Posté le 11-09-2003 à 09:27:03    

benou a écrit :

si il essaye de compiler Car, c'est surement qu'il y a une dépendance quelque part vers cette classe...
 
il faudrait aussi que tu nommes autrement la classe CardLayout : c'est pas une bonne idée d'utiliser des noms de classes existant dans l'API java


 
Oui c'est vrai que c'est pas une bonne idée... :whistle:  
J'ai tout mis dans le fichier Car.java que j'ai effacé de son contenu avant :D  
J'espère qu'il n'y a pas de classe Car.java dans un package de l'API Java  :??:


Message édité par neo9205 le 11-09-2003 à 09:27:35
Reply

Marsh Posté le 11-09-2003 à 09:28:32    

tu veux pas nous donner ton message d'erreur ?


---------------
http://runnerstats.net
Reply

Marsh Posté le 11-09-2003 à 09:35:31    

noldor a écrit :

tu veux pas nous donner ton message d'erreur ?


 
Voici l'erreur au lancement apres compilation:
http://perso.wanadoo.fr/nethardwarepc/erreur.jpg
 
Et voici le main mais l'erreur n'est pas là dedans :

Code :
  1. public static void main(String[] arguments)
  2. {
  3. try{
  4. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  5.   }catch(Exception e){System.err.print("impossible
  6. d'utiliser le systeme"+"look and feel:"+e);}
  7. Car t=new Car();
  8. t.setVisible(true);
  9. }


Message édité par neo9205 le 11-09-2003 à 09:36:55
Reply

Marsh Posté le 11-09-2003 à 09:42:59    

il faut que tu assignes le Layout avant d'ajouter tes elements peut etre ... (ce n'est qu'un supposition, mais je pense quand meme que ca peut poser probleme)
 
edit: le s en gras :D


Message édité par souk le 11-09-2003 à 09:43:26

---------------
L'inventeur de la cédille est un certain monsieur Groçon .
Reply

Marsh Posté le 11-09-2003 à 09:44:44    

je connais pas bien la classe CardLayout, mais d'après ce que j'en ai compris dans la javadoc, il faut que tu fasse
l.show(pane,"carte1" );  


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 09:55:37    

benou a écrit :

je connais pas bien la classe CardLayout, mais d'après ce que j'en ai compris dans la javadoc, il faut que tu fasse
l.show(pane,"carte1" );  
 


 
En effet, tu as raison, ça fonctionne de cette manière là.
Par contre, je ne vois qu'une carte,comment en créer des autres ?  
 
Quel est le nom de celle par défaut si on fait pas un "pane.add("carte1",pa)" ??

Reply

Marsh Posté le 11-09-2003 à 09:58:38    

souk a écrit :

il faut que tu assignes le Layout avant d'ajouter tes elements peut etre ... (ce n'est qu'un supposition, mais je pense quand meme que ca peut poser probleme)
 
edit: le s en gras :D


 
Tu as raison, ça parait plus logique, mais ça ne régle pas le probleme

Reply

Marsh Posté le 11-09-2003 à 10:12:01    

neo9205 a écrit :


Par contre, je ne vois qu'une carte,comment en créer des autres ?  


ben c'est à toi d'ajouter d'autres composants à pane  [:mlc]

neo9205 a écrit :


Quel est le nom de celle par défaut si on fait pas un "pane.add("carte1",pa)" ??


si tu indiques pas de nom, la cart aura certainement pas de nom [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 10:46:12    

benou a écrit :


ben c'est à toi d'ajouter d'autres composants à pane  [:mlc]
[:spamafote]


 
Oui mais si j'ajoute d'autres composants à pane, ils seront tous sur la meme carte, moi je veux les ajouter sur une autre carte  :pt1cable:

Reply

Marsh Posté le 11-09-2003 à 11:01:13    

neo9205 a écrit :


Oui mais si j'ajoute d'autres composants à pane, ils seront tous sur la meme carte, moi je veux les ajouter sur une autre carte  :pt1cable:  


 
 :??: comprend rien ...
 
t'es sûr de savoir ce que c'est le cardlayout ? va lire la javadoc, j'ai l'impression que tu as pas bien capté ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 11:11:53    

neo9205 a écrit :


 
Oui mais si j'ajoute d'autres composants à pane, ils seront tous sur la meme carte, moi je veux les ajouter sur une autre carte  :pt1cable:  

un CardLayout, c'est pas un système d'onglet (enfin, on peut en construire un à partir d'un CardLayout, mais ça suffit pas)
c'est un layout spécial qui permet de passer d'un panel à un autre


---------------
http://runnerstats.net
Reply

Marsh Posté le 11-09-2003 à 13:10:22    

noldor a écrit :

un CardLayout, c'est pas un système d'onglet (enfin, on peut en construire un à partir d'un CardLayout, mais ça suffit pas)
c'est un layout spécial qui permet de passer d'un panel à un autre


 
Ah oki ,donc il me manque le layout spécial pour passer d'un panel à un autre...POST clos  :sweat:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed