我想在jscrollpane上添加一个Jpanel;我也希望只有垂直滚动。我想设置我的jPanel"flowLaout"的布局,并通过jPanel.add(component)方法在我的代码中为我的jPanel添加几个组件。结果是,所有组件都被放置在一行中,该行切除了jpanel的宽度,并且没有显示。我用过这个技巧,但都失败了:
jScrollPane1.setHorizontalScrollBar(null);
jScrollPane1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
Wrap Layout应该适合您。
我不确定您当前项目的详细信息,但我建议使用MigLayout。我从来没有错过。
我目前正在编写一个带有嵌套MigLayout面板的触摸屏界面,深度可达4或5层,没有遇到任何问题。
请使用以下策略打开垂直滚动并关闭水平滚动(适用于Java SE 7):
Panel graphicPanel = new Panel();
JScrollPane scrollbar = new JScrollPane(graphicPanel);
scrollbar.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollbar.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollbar.setPreferredSize(new Dimension(1300, 600));
scrollbar.setVisible(true);
add(scrollbar, BorderLayout.CENTER);