Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JComboBox] Ne se déroule pas

Dans méthode paintComponent()

    22 décembre 2009 à 20:35:12

    Bonjour à tous,

    Alors que je vous explique mon souci.
    Dans le cadre de mes études nous devons réaliser un projet tout au long de l'année et j'ai choisi de réaliser une coinche en java.
    Jusque la pas trop de soucis même si j'ai un peu de mal avec les interfaces swing et awt mais je m'en tire.

    En gros comment je gère tout ca, j'ai une classe Fenetre héritant de JFrame qui fait appelle a un Panel hérité de JPanel qui contient dans sa méthode PaintComponent l'ensemble des composant à ajouter au Panel et qui les ajoute justement.

    C'est dans ce contexte que je voudrai dessiner une JComboBox mais non seulement la flêche déroulante n'apparait pas toujours, mais en plus pas moyen d'y dérouler.
    D'ou peut venir le problême?



    comboCouleur.removeAllItems();
    comboCouleur.addItem("Coeur");
    comboCouleur.addItem("Trêfle");
    comboCouleur.addItem("Carreau");
    comboCouleur.addItem("Pique");
    comboCouleur.setBounds(this.getWidth()/2-65, this.getHeight()/2-20, 165, 20);
    this.add(comboCouleur);
    


    Est-ce que le fait de tout balancer dans la méthode paintComponent() est bien judicieux? Comment faire autrement?
    Comment rendre ma JComboBox déroulante?

    Merci à tous pour vos réponses...
    • Partager sur Facebook
    • Partager sur Twitter
      25 décembre 2009 à 11:45:04

      Pourquoi tu remove les items avant ?
      généralement dans painComponent, on met que des composants graphiques qui peuvent à tout moment être redessiner avec this.repaint();
      Oublie pas un super.paintComponent(g) en première ligne.
      si ton JComboBox restera toujours à la même place crée le dans le constructeur de ton panel.

      private String[] itemsTable = { "Coeur", "Trèfle", "Carreau", "Pique" };
      private JComboBox jcbCards;
      
      public PanelCards () {
      
          jcbCards = new JComboBox ( itemsTable );
          jcbCards.addActionListener(this);
      
          this.add(jcbCards);
      
      }
      

      • Partager sur Facebook
      • Partager sur Twitter

      [JComboBox] Ne se déroule pas

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown