如何创建可滚动的Java框?

如何创建可滚动的Java框?,java,swing,scroll,box,scrollpane,Java,Swing,Scroll,Box,Scrollpane,我在面板中有一个框(verticalBox),里面有复选框,我希望它可以滚动 我试过了 Box box = Box.createVerticalBox(); JScrollPane scrollArea = new JScrollPane(box, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); panel = new JPanel(); pa

我在面板中有一个框(verticalBox),里面有复选框,我希望它可以滚动

我试过了

Box box = Box.createVerticalBox();
JScrollPane scrollArea = new JScrollPane(box,  
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

panel = new JPanel(); 
panel.add(scrollArea); 
add(aggiuntaPanel, BorderLayout.CENTER);

我可以看到框中的框,但我无法滚动它。我该怎么办?

你需要反过来做。要使组件可滚动,必须将其括在
JScrollPane

应该是:

scrollPanel.add(panel);
此外(如@Gorbels评论中所述),在将其添加到包含组件之前,您需要在
JScrollPane
上设置尺寸:

scrollPanel.setPreferredSize(new Dimension(WIDTH, HEIGHT));

使用preferredSize将布局委托给布局管理器,您也可以使用
setSize()
,尽管存在概述的一些差异

此外,维度上的默认值为零,因此如果未建立维度,即使策略设置为
垂直滚动条,也不会显示滚动条。您至少需要在
JScrollPane
(如果不是
JPanel
)上设置首选尺寸。@Gorbles感谢您的帮助,我默认为我创建的任何对象设置尺寸,所以我忽略了这一点:)谢谢大家!我确实像Vogel说的那样,但现在我看不到面板,我只看到垂直滚动条,你没有发布代码中的问题。张贴一个适当的说明问题的帖子。
scrollPanel.setPreferredSize(new Dimension(WIDTH, HEIGHT));