BoxLayout не показывает все компоненты

Я не уверен, как это исправить, у меня есть несколько JPanel (используемых для рисования) внутри основной JPanel с использованием BoxLayout. JPanels имеют установленный минимальный размер и предпочтительный размер. Основная панель JPanel показывает только 3 из пяти, так как она слишком мала. Я попытался установить размер основного JPanel довольно большим, а также попытался добавить прокрутку, но ничего не появилось.

Вот код:

public static void main(String[] args) throws XMLStreamException, IOException {
    JFrame frame = makeFrame(500, 500);
    JPanel panel = new JPanel();
    panel.setSize(1800, 1800);
    JScrollPane scroller = new JScrollPane(panel);  

    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));


    frame.add(scroller);

    test1(panel);

}
public static JFrame makeFrame(int sizex, int sizey){

    JFrame frame = new JFrame();

    frame.setTitle("FDA");
    frame.setSize(sizex, sizey);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setVisible(true);
    return frame;
}

test1 добавляет шесть панелей JPanel размером 360x360 в panel.

С полосой прокрутки я вижу только одну из панелей JPanel, и полосы прокрутки не появляются.

Редактировать: мне нужно подождать, пока все мои расчеты не будут выполнены, прежде чем я нарисую основную JPanel, поэтому она не отображала последние 3.


person mihajlv    schedule 19.04.2013    source источник
comment
Можем ли мы взглянуть на то, что вы пробовали (например, код)?   -  person Kezz    schedule 19.04.2013
comment
@Kezz101 Я только что опубликовал кое-что.   -  person mihajlv    schedule 19.04.2013
comment
Приведенный вами код не помогает. Опубликовать SSCCE.   -  person camickr    schedule 19.04.2013
comment
@Kezz101 Смотрите правку.   -  person mihajlv    schedule 20.04.2013
comment
@mihajlv Что делает makeFrame? Вы упаковываете раму? Весь код очень помог бы.   -  person Kezz    schedule 20.04.2013
comment
Все еще жду вашего sscce (пожалуйста, проверьте ссылку). 1+ к ответу mKorbel.   -  person Hovercraft Full Of Eels    schedule 20.04.2013


Ответы (1)


  • frame.setVisible(true); выполняется до создания и добавления его JComponents (в этот уже видимый JFrame)

  • пожалуйста, что test1(panel);

person mKorbel    schedule 19.04.2013