2012-05-10 2 views
1

Я надеялся, что кто-то сможет вам помочь. Кажется, что это должна быть простая проблема, но для жизни я не могу это решить.JScrollPane не прокручивается при добавлении JPanel

Проблема: Я создаю 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

Также обратите внимание, что [SSCCE] (http://sscce.org/) рисует более полную «картинку» графического интерфейса, чем экранный снимок. –

ответ

2

container.setPreferredSize(new Dimension(x,y)); Размеры контейнера должны быть больше размеров прокрутки.

Из того, что я читал setPreferredSize(), не очень хорошо использовать. Проблема, вероятно, в LayoutManager для контейнера или jp.

же проблема здесь: Java Swing: JScrollPane not working

0

Вы пробовали звонить REVALIDATE() к JScrollPane и/или контейнер после каждого добавления?

Смежные вопросы