2010-02-20 6 views
0

Je veux ajouter JCombobox au panneau lors de l'exécution, je n'ai aucune idée à ce sujet, donc s'il vous plaît si vous avez une idée à ce sujet me suggérer.Comment ajouter un nouveau composant au panneau lors de l'exécution

+0

Pouvez-vous être un peu plus précis sur ce que vous essayez de faire? Êtes-vous préoccupé par l'exécution vs la compilation? Ou êtes-vous simplement intéressé à ajouter un JComboBox à un panneau? – akf

Répondre

1

Je suppose que vous voulez ajouter une liste déroulante à un composant qui est déjà à l'écran. Il suffit d'ajouter le composant au Container approprié et d'appeler la méthode validate de Container. Voici un petit exemple pour ceci:

import java.awt.Dimension; 
import java.awt.event.ActionEvent; 

import javax.swing.AbstractAction; 
import javax.swing.BoxLayout; 
import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Application { 

    private static final String[] choices = { "One", "Two", "Three" }; 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     final JPanel content = new JPanel(); 
     content.setPreferredSize(new Dimension(50, 200)); 
     content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); 
     JButton addButton = new JButton(new AbstractAction("Add Combobox") { 

      private static final long serialVersionUID = 1L; 

      @Override 
      public void actionPerformed(ActionEvent arg0) { 
       content.add(new JComboBox(choices)); 
       content.validate(); 
      } 
     }); 

     frame.add(content); 
     content.add(addButton); 
     frame.pack(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 

Bien que je l'ai utilisé un cadre uniquement pour cet exemple, il faut aussi travailler pour une JPanel.

+3

J'utilise la méthode revalidate() Swing au lieu de la méthode AWT validate(). – camickr

Questions connexes