我希望有人可以提供帮助。这似乎应该是一个简单的问题,但对于我的生活,我无法解决它。
问题:我创建的JPanel
由包含5个标签的面板组成,每个标签都带有ImageIcons
。 [听起来令人困惑]
然后我将此面板添加到JScrollPane
。但是当它显示时,图像显示并正确放置,但我无法向下滚动以查看屏幕外的面板。
这是截图:http://img841.imageshack.us/img841/36/screenshot20120510at160.png
以下是我用来填充面板并添加JScrollPane
的代码片段。
private void setSeriesViewContainer(){
container = new BackgroundPanel(backGround, BackgroundPanel.TILED);
//container.setPreferredSize(new Dimension(650,500));
container.setLayout(new BoxLayout(container, BoxLayout.PAGE_AXIS));
FlowLayout flowLayout = new FlowLayout();
JPanel[] jp = new BackgroundPanel[10];
for (int i = 0; i < jp.length; i++) {
jp[i] = new BackgroundPanel(backGround, BackgroundPanel.TILED);
jp[i].setLayout(flowLayout);
for (int j = 0; j < 10; j++) {
jp[i].add(new JLabel(new ImageIcon(getClass().getResource("/placeHolder.png"))));
}
}
for (int i = 0; i < jp.length; i++) {
container.add(jp[i]);
}
public void init(){
seriesViewContainer = new javax.swing.JScrollPane(container);
seriesViewContainer.setBorder(null);
seriesViewContainer.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
seriesViewContainer.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
seriesViewContainer.setPreferredSize(new java.awt.Dimension(700, 300));}
我一直在寻找解决方案但尚未提出解决方案。
答案 0 :(得分:2)
container.setPreferredSize(new Dimension(x,y));
容器的尺寸应大于滚动窗格的尺寸。
从我读过的内容中,setPreferredSize()不是一件好事。问题可能是容器或jp的LayoutManager。
答案 1 :(得分:0)
您是否尝试在每次添加后调用revalidate()到JScrollPane和/或容器?