如何创建可滚动的Java框?
我在面板中有一个框(verticalBox),里面有复选框,我希望它可以滚动 我试过了如何创建可滚动的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
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));