BoxLayout没有显示所有组件

时间:2013-04-19 19:30:58

标签: java swing jpanel boxlayout

我不知道如何解决这个问题,我在使用BoxLayout的主JPanel中有几个JPanels(用于绘图)。 JPanels具有最小尺寸和首选尺寸。主要的JPanel只显示五个中的三个,因为它太小了。我尝试将主要JPanel的大小设置得相当大,并尝试添加一个scroler但是没有任何显示。

以下是一些代码:

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将六个尺寸为360x360的JPanel添加到panel

使用滚动条我只能看到其中一个JPanel,并且不会显示滚动条。

编辑:在绘制主JPanel之前,我必须等到我的所有计算完成,这就是为什么它没有显示最后的3个。

1 个答案:

答案 0 :(得分:2)

  • frame.setVisible(true);在创建并添加JComponents之前执行(对此已经可见的JFrame)

  • 请问test1(panel);