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 :

swing et problème d'affichage


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut swing et problème d'affichage
    Bonjour...
    J'avais déjà bidouillé un peu en java il y a de ça deux ou trois mois (j'avais déjà pu explorer ce forum à l'occasion), et je m'y remet un peu (je suis tout nouveau en programmation, je commence avec java).

    Donc je ressort mes vieux travaux et surprise, ils marchent plus. Je veux dire, j'ai ma JFrame qui s'affiche (avec son titre, sa taille, etc) mais rien dedans.

    En fouillant dedans pour isoler le problème, j'obtiens ce code minimaliste :
    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
    import javax.swing.* ;
    import java.awt.* ;
    class Fenetre extends JFrame { 
      public Fenetre () {
        setTitle ("coucou") ;
        setSize (300, 150) ;
        pan = new JPanel() ;
        getContentPane().add(pan) ;
        pan.setBackground(Color.yellow) ;
      }
      private JPanel pan ;
    }
    public class ToutJaune {
      public static void main (String args[]) {
        Fenetre fenetre = new Fenetre() ;
        fenetre.setVisible(true) ;
      }
    }
    Dans la théorie du bouquin de java que j'ai ("Programmer en java", Claude Delannoy), ça devrait me faire une fenêtre toute peinte en jaune.
    Et bien non, j'ai juste mon JFrame, aux bonnes dimensions, avec le bon titre, mais pas en jaune.
    D'ailleur, si je remplace le JPanel par un JButton, ça ne m'affiche pas le JButton non plus.

    Donc, bien heureux de savoir ce qui marche plus, j'aimerais savoir comment le refaire marcher. (j'en profite pour signaler que la machine que j'utilise maintenant n'est pas la même qu'il y a deux mois. C'est mes premiers essais de programmation sur cette machine...)
    J'ai utilisé la méthode barbare : désinstaller tout ce qui avait à voir avec du java de la machine, puis télécharger la dernière version sur le site java.sun et l'installer. Même problème. Alors j'ai essayé le j2sdk filé avec le bouquin. Idem.
    Ca ne veux pas afficher les Jcomponents.

    Pourtant, j'utilise des programmes java (eclipse, azureus) qui affichent bien leurs boutons (quoique je ne sais pas si ils sont fait en swing ou autre...).

    Donc si vous aviez une idée sur quoi faire, ça serait super sympa...

    Merci de votre aide...

  2. #2
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Bonjour !

    Alors déjà, il faut construire la JFrame à l'aide du super constructeur, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public Fenetre () {
    <div style="margin-left:40px">super();</div><div style="margin-left:40px">setTitle ("coucou") ;</div><div style="margin-left:40px">...</div>}
    ou même :
    Ensuiste, si ça ne fonctionne toujours pas, essaye de placer ton JPanel dans un Layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    setLayout(new BorderLayout());
    getContentPane().add(panel, BorderLayout.CENTER);

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Merci pour ta réponse rapide !
    ...Malheureusement, ça ne marche pas mieux...
    Même en expliquant clairement le conteneur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Container cont = getContentPane();
    cont.setLayout(new BorderLayout());
    cont.add(pan, BorderLayout.center
    J'ai toujours pas le droit à ma fenêtre jaune (ce qui peut sembler superInutile en soi, une fenetre jaune qui ne fait rien d'autre qu'être jaune ; mais bon...)

  4. #4
    Membre chevronné
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Par défaut
    Bon j'ai vérifier ton code...je n'y ai trouvé aucunes erreurs et comme ça ma chipotait je l'ai testé rapidement.

    Chez moi, ça marche trés bien

    J'ai juste testé avec netBeans... comme tu utilise le java de delannoy tu doit utiliser eclipse (c'est celui qui est sur le cd non?).
    C'est peut=être ca???

  5. #5
    Membre éclairé

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Par défaut
    Je confirme.

    En prenant ton code tel quel, elle est toute jaune (mais les conseils de BlackWood sont bel et bien à considérer).

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Orian m'a mis le doute...
    Alors j'ai testé le même code sur mon ordi portab', avec les dernières versions d'eclipse et du jdk, j'ai ma fenêtre toute jaune (et mes vieux exercices qui marchent).

    Sur mon bel ordi tout neuf, avec les dernières versions (comme avec celles livrées avec le bouquin), ça marche pas...

    Je soupsonne une mystiquerie quelconque de windows...
    Je vais bosser avec le portab', et pis j'essairais à nouveau lors d'une prochaine réinstallation de windows...

    Merci de l'intérêt que vous avez porté à mon problème !

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par BlackWood
    Bonjour !

    Alors déjà, il faut construire la JFrame à l'aide du super constructeur, comme ceci :
    [CODE]
    public Fenetre () {
    super();
    setTitle ("coucou") ;
    ...
    }
    Ça sert à rien, le constructeur par défaut est automatiquement appelé...


    EDIT: grilled, j'aurais dû lire le post jusqu'au bout avant de répondre

  8. #8
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Exact, mais les appels explicites m'ont dépannés plus d'une fois... Je pars du principe où moins on laisse la machine faire elle-même ses bidouilles (commes ses appels automatiques aux constructeurs ou le garbage collector), moins on risque d'être surpris d'un bug invisible. Il est vrai aussi que c'est une habitude venue d'autres langages moins "intelligent". Java est moins concerné...

  9. #9
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Salut !
    Je suis retourné voir mon ordi mystique qui ne veut pas afficher la fenêtre toute jaune, quand les autres ordi le font bien avec le même code.

    Et en terme d'explicite :
    si je fais un validate(); (et voui, j'avance dans mon bouquin, j'apprend de nouveaux mots !) sur le conteneur, et ben pouf ça marche. Ce n'était donc pas une mystiquerie de windows, mais ça reste une mystiquerie quand même : pourquoi j'ai besoin d'expliciter validate() sur une machine et pas sur une autre ?

    Si l'un d'entre vous à une idée...
    Sinon, je vous remercie de votre aide !

  10. #10
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Je ne saurai pas te dire pourquoi, mais ceci appui fortement mon message précédent !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing]Problème d'affichage sur un JTree
    Par tomca dans le forum Composants
    Réponses: 4
    Dernier message: 19/01/2006, 10h41
  2. [SWING]affichage d'une image
    Par chico_du_33 dans le forum AWT/Swing
    Réponses: 51
    Dernier message: 08/07/2005, 09h55
  3. [Swings]Quelques soucis à l'affichage !
    Par julienOriano dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 23/09/2004, 13h22
  4. [Swing]Affichage d'un lien
    Par Crazyblinkgirl dans le forum 2D
    Réponses: 2
    Dernier message: 26/08/2004, 16h41
  5. [Swing] problème d'affichage
    Par l'obstiné dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/08/2004, 18h05

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