2010-03-14 5 views
1

4 개의 JPanel과 1 개의 JScrollPane이있는 프레임이 있으며, 4 개의 패널은 북, 동쪽, 남쪽, 서쪽 및 중앙의 스크롤 패널에 있습니다.Java JFrame 메서드 팩()

프레임 기능을위한 팩 방법을 얻으려고했지만 실행했을 때 창의 제목 표시 줄 만 얻었습니다.

어떤 아이디어?

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); 

답변

2

pack()을 수행하기 전에 "이전에"프레임을 패널에 추가해야합니다. 그렇지 않으면 팩할 것이 없습니다.

또한 프레임의 기본 레이아웃은 BorderLayout입니다.

+0

고마워, 그게 효과가 : D 상식. – Oliver