BoxLayout не показывает все компоненты
Я не уверен, как это исправить, у меня есть несколько JPanels (используется для рисования) внутри основной 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
добавляет шесть JPanels размером 360x360 в panel
,
С полосой прокрутки я вижу только один из JPanels, и полосы прокрутки не появляются.
Редактировать: мне нужно подождать, пока все мои расчеты не будут выполнены, прежде чем я нарисую основной JPanel, поэтому он не отображал последние 3.
1 ответ
frame.setVisible(true);
выполняется до егоJComponents
созданы и добавлены (к этому уже видимому JFrame)пожалуйста что
test1(panel);