2011-04-20 24 views
4

我在使用FlowLayout的JPanel上有一堆按鈕。它看起來非常好。當按鈕到達面板的右側時,它們從新的一排開始創建一個漂亮的二維網格。FlowLayout不與JScrollPane一起流動

下面是代碼:

Container cp = getContentPane(); 
    JPanel panel = new JPanel(); 
    panel.setLayout(new FlowLayout()); 
    for (int i = 0; i < 20; i++) 
     panel.add(new JButton("Button " + i)); 
    cp.add(panel); 

然而,我把面板在滾動窗格只有垂直滾動分鐘:

Container cp = getContentPane(); 
    JPanel panel = new JPanel(); 
    panel.setLayout(new FlowLayout()); 
    for (int i = 0; i < 20; i++) 
     panel.add(new JButton("Button " + i)); 
    JScrollPane pane = new JScrollPane(
      panel, 
      ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, 
      ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 
    cp.add(pane); 

的按鈕僅在一個行所示(和我什至不能看到右邊的那些)。我仍然希望他們包裝。這裏發生了什麼?順便說一句,我只需要顯示垂直滾動條和沒有水平滾動條。我希望按鈕在到達最後時換行。

+0

你爲什麼不讀你最後一個問題的答案? – camickr 2011-04-20 19:30:54

+0

我在最後一個問題中看過答案(實際上,我評論了其中的幾個問題)。我意識到我在問錯誤的問題。我確實需要一個FlowLayout。我只是混淆了爲什麼添加JScrollPane會導致按鈕到達右側時不換行到新行。 – 2011-04-20 19:33:47

+1

如果你這麼說,但我在2小時前給你答案。 – camickr 2011-04-20 19:44:44

回答