2010-11-18 9 views
0

Pourquoi l'interface utilisateur n'apparaît pas dans mon code ci-dessous:JPanel ne se présente pas

public class GUI extends JPanel{ 

     public GUI(String name, String address, List<String> reviews, Icon icon){ 
      setSize(600,600); 
      setLayout(new BorderLayout()); 
      JLabel iconLabel = new JLabel(icon); 
      JLabel nameLabel = new JLabel(name); 
      JLabel addressLabel = new JLabel(address); 
      JPanel southReviewPanel = new JPanel(); 
      southReviewPanel.setLayout(new BoxLayout(southReviewPanel, BoxLayout.Y_AXIS)); 
      for (String review: reviews) { 
       southReviewPanel.add(new JTextArea(review)); 
      } 
      add(southReviewPanel); 
      add(iconLabel, BorderLayout.WEST); 
      JPanel northPane = new JPanel(); 
      northPane.add(nameLabel); 
      northPane.add(addressLabel); 
      add(northPane, BorderLayout.NORTH); 
     } 


    public static void main(String[] args) { 
     ImageIcon ic = new ImageIcon(); 
     List<String> list = new ArrayList<String>(); 
     list.add("review1"); 
     list.add("review2"); 
     list.add("review3"); 
     list.add("review4"); 
     GUI test = new GUI("test", "test", list, ic); 

      test.setVisible(true); 

    } 

} 

Répondre

6

je suppose que JPanel ne peut pas être un conteneur de premier niveau. Il doit être placé dans un JFrame ou JWindow à afficher

JFrame f=new JFrame(); 
f.add(test); 
f.setVisible(true); 
0

Un JPanel n'est pas un conteneur de niveau supérieur. Vous devez placer ce JPanel dans un JDialog ou JFrame. Assurez-vous de l'ajouter au volet de contenu de cette boîte de dialogue ou de ce cadre:

JFrame f = new JFrame(); 
f.getContentPane().add(test); 
0

Les panneaux n'apparaissent pas dans Swing. Ils doivent être ajoutés aux fenêtres. Créez JFrame ou JDialog et ajoutez votre panneau à celui-ci.

Questions connexes