IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[JAVA --> AppDev Studio]


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [JAVA --> AppDev Studio]
    Bonsoir à vous,

    J'ai un problème qui peut être tendancieux :
    J'ai programmé une appli (chez moi) avec Eclipse sous windows.
    Maintenant que je reviens à l'IUT (où il n'y a qu'AppDev Studio), je me retrouve avec une erreur que je n'avais jamais eu chez moi :
    java.lang.Error: Do not use Identification.setLayout() use Identification.getContentPane().setLayout() instead ... avec cette fenêtre-ci : Nom : Fatal exception.PNG
Affichages : 57
Taille : 9,3 Ko.
    Donc je suis ce que l'on me dit et je rajoute des getContentPane() un peu partout où je peux le rajouter.

    Par contre, une fois que je relance l'appli, certes je n'ai plus le message d'erreur mais mes JFrames ne s'affichent plus .

    J'avoue ne pas trop savoir si le problème peut venir de la JDK, de la JVM ou autre.

    Sauriez-vous ? Merci à vous.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ton problème viens que dans ton appli, pour test frame, tu a fait des setLayout() et aussi vraissemblablement des add(component).

    Problème, cette technique est interdite (et la version java que tu a à liut l'a probablement banni carrément). On ne peux pas attaquer directement le contenu d'une fenêtre, car celle-ci est formée de menu, d'un overlay (pour le drag and drop je pense), etc, le tout dans un rootpane. Changer cà ou changer le layout casserais tout. Alors maintenant le comportement a cas d'attaque directe varie

    Dans la java 1.4 (voir http://java.sun.com/j2se/1.4.2/docs/...LayoutManager))
    By default the layout of this component may not be set, the layout of its contentPane should be set instead. For example:

    thisComponent.getContentPane().setLayout(new GridLayout(1, 2))


    An attempt to set the layout of this component will cause an runtime exception to be thrown. Subclasses can disable this behavior.
    Maintenant (probablement trop de plaintes) sun a mis ceci dans java 5 et 6 (voir http://java.sun.com/j2se/1.5.0/docs/...LayoutManager))
    Sets the LayoutManager. Overridden to conditionally forward the call to the contentPane. Refer to RootPaneContainer for more information.
    Conclusion, soit tu upgrade ta java (ton code génèrera des erreurs avec java 1.4), soit tu suis les recommendation, tu remplace tout tes frame par des frame.getContentPane(). La disparition de ton contenu proviens peut etre d'autres exceptions (voir console). Par exemple, avec un BorderLayout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BorderLayout bl = new BorderLayout(frame);
    ...
    frame.getContentPane().setLayout(bl);
    Le BorderLayout va générer une erreur, disant qu'il ne peut pas être dans plusieurs composants à la fois (la frame, cf constructeur, et le contentPane)

  3. #3
    Invité
    Invité(e)
    Par défaut Java -> AppDev Studio
    Merci de ta réponse tchize_,

    Au final, la solution AppDev Studio ne sera plus utilisé tant que AppDev Studio ne voudra pas m'afficher mon appli en sachant que même en mettant des getContentPane() où l'appli le demande, celle-ci ne s'affiche toujours pas et il n'y a pas plus d'erreur dans la console .

    La solution sera donc de revenir sur Linux. Au départ, le souci était d'envoyer des mails avec pièce jointe ainsi que d'appeler Word pour ouvrir un fichier externe mais à y repenser sous ubuntu c'est possible.

    En tout cas, j'avoue que c'est louche du fait qu'un collègue avait programmé sur mon PC portable et que son appli tournait nickel sur AppDev Studio .

    Bonne prog.
    Styvodiabolo.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par styvodiabolo Voir le message
    des getContentPane() où l'appli le demande, celle-ci ne s'affiche toujours pas et il n'y a pas plus d'erreur dans la console
    Ha oui mais non! Pas seulement "là ou l'appli le demande", faut revoir le code en te disant que tu ne manipule par un JFrame, mais un JComponent qui t'es renvoyé par getContentPane(), quand il s'agit de faire le layout de la fenêtre.

    Quand au exceptions .... un catch(Exception e){} qui traine?

  5. #5
    Invité
    Invité(e)
    Par défaut JAVA -> AppDevStudio
    Le souci étant que si je ne met que des getContentPane() uniquement pour les layouts alors il me dit qu'il en faut avant un .add() et avant plusieurs autres méthodes. Les seules fois où il n'en veut pas c'est pour les setTitle(), setDefaultCloseOperation() ...

    Pour les exceptions à part au moment où j'avais le use getContentPane().setLayout() je n'en pas d'autre du tout, c'est juste qu'il ne m'affiche plus la JFrame et donc il ne me laisse pas d'erreur dans la console, ce qui est d'autant plus perturbant .

    Au cas où, j'ai testé des solutions McGyver pour voir si l'appli n'était pas par exemple en dehors de l'écran et j'ai même mis un KeyListener pour voir si les touches étaient actives ... Bref, tout se lancait mais rien ne s'affichait .

    Styvodiabolo.

Discussions similaires

  1. Importer un Web Service Java dans Visual Studio 2010
    Par gjeanne dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 12/03/2012, 16h32
  2. Documentation sur SAS APPDEV STUDIO
    Par overflow dans le forum Débutez
    Réponses: 2
    Dernier message: 20/02/2010, 18h38
  3. [Visual Web] [SJSC] Java Studio Creator 2 est sorti
    Par Valère dans le forum NetBeans
    Réponses: 7
    Dernier message: 19/11/2007, 00h38
  4. Réponses: 0
    Dernier message: 07/11/2005, 22h59
  5. [Visual Web] [Sun Java Studio] Qui a essayé ?
    Par -COil- dans le forum NetBeans
    Réponses: 3
    Dernier message: 05/05/2004, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo