2012-02-20 84 views
2

我正在研究一個具有流佈局的程序,裏面是一組標籤,因爲有太多它們不能全部顯示。無論如何添加一個滾動窗格滾動瀏覽所有這些標籤水平?JScrollPane用於多個標籤

JPanel mainpanel = new JPanel(); 
    mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.X_AXIS)); 
     pane.add(mainpanel, BorderLayout.NORTH); 

     JPanel rightpanel = new JPanel(); 
     rightpanel.setLayout(new FlowLayout()); 
     for (int i = 0; i < 100; i++) 
     { 
      rightpanel.add(new JLabel("Label " + i)); 
     } 
     mainpanel.add(new JLabel("Left label")); 
     mainpanel.add(new JScrollPane(rightpanel)); 
+0

你說在你得到一個空指針異常的評論。這是從哪裏來的?在上面的代碼中,你在哪裏定義'pane'?嘗試總是提供一個[SSCCE](http://sscce.org) – DNA 2012-02-21 08:42:43

回答

3

我建議OT使用JListJTable與在JListJTable一個Column或(取決於或方向),對象是JLabel/JComponent默認

2

不知道什麼是你的問題真的,因爲你已經知道你需要使用JScrollPane。如何:

public class ScrollLabels 
{ 
    public static void main(String[] args) 
    { 
     JFrame frame = new JFrame("Labels"); 

     JPanel mainpanel = new JPanel(); 
     mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.X_AXIS)); 
     frame.add(mainpanel); 

     JPanel rightpanel = new JPanel(); 
     rightpanel.setLayout(new FlowLayout()); 
     for (int i = 0; i < 100; i++) 
     { 
      rightpanel.add(new JLabel("Label " + i)); 
     } 
     mainpanel.add(new JLabel("Left label")); 
     mainpanel.add(new JScrollPane(rightpanel)); 
     frame.setSize(500, 100); 
     frame.setVisible(true); 
    } 
} 
+0

謝謝DNA,但如果我想要在左邊的標籤,讓我們說:「名稱」和一堆標籤在右側和爲滾動窗格僅滾動右側的標籤。 – 2012-02-20 17:21:29

+1

然後,您需要將標籤和滾動窗格添加到另一個容器,然後選擇佈局管理器(可能是BoxLayout)將它們左右排列。 – DNA 2012-02-20 18:12:44

+0

你能告訴我一個例子,因爲我已經嘗試了3個多小時,而我卻無法讓它工作。 – 2012-02-20 23:33:09