2011-10-20 11 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のチュートリアルからセクションを読むことをお勧め。