添加JPanel时,JScrollPane不滚动

时间:2012-05-10 15:26:40

标签: java swing scroll jpanel jscrollpane

我希望有人可以提供帮助。这似乎应该是一个简单的问题,但对于我的生活,我无法解决它。

问题:我创建的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));}

我一直在寻找解决方案但尚未提出解决方案。

2 个答案:

答案 0 :(得分:2)

container.setPreferredSize(new Dimension(x,y));容器的尺寸应大于滚动窗格的尺寸。

从我读过的内容中,setPreferredSize()不是一件好事。问题可能是容器或jp的LayoutManager。

同样的问题:Java Swing: JScrollPane not working

答案 1 :(得分:0)

您是否尝试在每次添加后调用revalidate()到JScrollPane和/或容器?