2010-03-14 8 views
1

J'ai un cadre avec 4 JPanels et 1 JScrollPane, les 4 panneaux sont dans la configuration de la frontière nord, est, sud, ouest et le scrollpane au centre.Java JFrame méthode pack()

J'ai essayé d'obtenir la méthode de paquet pour un cadre fonctionnant mais quand couru vous obtenez juste la barre de titre de la fenêtre.

Des idées?

JFrame conFrame; 
    JPanel panel1; 
    JPanel panel2; 
    JPanel panel3; 
    JPanel panel4; 
    JScrollPane listPane; 
    JList list; 
    Object namesAr[]; 
    ... 
    ... 
    ... 
    namesAr= namesA.toArray(); 
    list = new JList(namesAr); 
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    list.setLayoutOrientation(JList.HORIZONTAL_WRAP); 
    list.setVisibleRowCount(-3); 
    list.addListSelectionListener(this); 

    listPane = new JScrollPane(list); 

    panel1 = new JPanel(); 
    panel2 = new JPanel(); 
    panel3 = new JPanel(); 
    panel4 = new JPanel(); 

    conFrame.setLayout(new BorderLayout()); 

    panel1.setPreferredSize(new Dimension(100, 100)); 
    panel2.setPreferredSize(new Dimension(100, 100)); 
    panel3.setPreferredSize(new Dimension(100, 100)); 
    panel4.setPreferredSize(new Dimension(100, 100)); 

    panel1.setBackground(Color.red); 
    panel2.setBackground(Color.red); 
    panel3.setBackground(Color.red); 
    panel4.setBackground(Color.red); 

    conFrame.pack(); 

    conFrame.add(panel1, BorderLayout.NORTH); 
    conFrame.add(panel2, BorderLayout.EAST); 
    conFrame.add(panel3, BorderLayout.SOUTH); 
    conFrame.add(panel4, BorderLayout.WEST); 
    conFrame.add(listPane, BorderLayout.CENTER); 
    conFrame.setVisible(true); 

Répondre

2

Vous devez ajouter les panneaux au cadre « avant » que vous faites le pack() sinon il n'y a rien à emballer.

De plus, la disposition par défaut d'une image est BorderLayout.

+0

Merci, cela a fonctionné: D Sens commun vraiment. – Oliver