Пакет методов Java JFrame () - PullRequest
       11

Пакет методов Java JFrame ()

1 голос
/ 14 марта 2010

У меня есть рамка с 4 JPanels и 1 JScrollPane, 4 панели в макете границы север, восток, юг, запад и область прокрутки в центре.

Я пытался получить метод pack для функционирования фрейма, но при запуске вы просто получаете строку заголовка окна.

Есть идеи?

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

1 Ответ

2 голосов
/ 14 марта 2010

Вам нужно добавить панели в рамку "до", когда вы делаете пакет (), иначе паковать нечего.

Кроме того, макетом по умолчанию для фрейма является BorderLayout.

...