2011-10-20 35 views
0

INTRO: 我使用JFrame創建了一個Java應用程序。我有一個JMenuBar在頂部和下面,我想顯示文本行。滾動問題(Java-JFrame-JScrollBar)

用途: 當我有50行並且只有20行可以同時顯示時,我希望能夠向下滾動並再次備份。

問題: 當然,我的理論並不想因爲它應該工作。我的問題是我不知道如何正確添加垂直滾動。

問題: 如何更改此代碼以實現我的目標?

public void display(){ 

    Container content = this.window.getContentPane(); 
    content.setLayout(new BorderLayout()); 
    Border border = LineBorder.createGrayLineBorder(); 

    //this is just a sample 
    for(int i = 0;i<50;i++){ 
     JLabel lab = new JLabel("lonyaladek"); 
     lab.setSize(570, 20); 
     lab.setBorder(border); 
     lab.setLocation(10, 20+(i*25)); 
     content.add(lab); 
    } 

    //scroll 
    JScrollBar sb = new JScrollBar(JScrollBar.VERTICAL, 0, 0, 0, 0); 
    content.add(sb); 
} 

回答

1

首先,你需要開始一個佈局管理器,允許您將多個組件添加到容器中。也許一個GridLayout是最好的開始。

然後將此容器添加到scrollPane,然後將該窗格添加到窗口。

所以基本的代碼如下:

JPanel panel = new JPanel(new GridLayout(0, 1)); 
panel.add(...); 
panel.add(...); 
JScrollPane scrollPane = new JScrollPane(panel); 
window.add(scrollPane, BorderLayout.CENTER); 

我建議你閱讀從How to Use Scroll Panes Swing的教程部分獲取更多信息。