2012-01-19 16 views
0

これは私が代わりにvectorDefaultListModelを使用していますが、問題は私が作るとき、私JList & JScrollPane,スクロールバーが正しく表示されますが、私は十分な要素があるにもかかわらず、スクロールすることができないということであるときだけであるならば、私は知りません完全なウィンドウを埋めるために。JListスクロールのバグ?

ソースコード:使用している命名規則が全く適切ではありません:PS

JScrollPane scrollpane = new JScrollPane(list); 

panel_unit.add(YUi.JScrollPane(list = YUi.JList(main.config.fdata,0,0,this,0),500,314,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS),5,5); 
public static JList JList(DefaultListModel text,int width,int height,ListSelectionListener listener,int SelIndex) { 
    JList list = new JList(text); 
    list.setPreferredSize(new Dimension(width,height)); 
    list.setSelectedIndex(SelIndex); 
    list.addListSelectionListener(listener); 
    return list; 
} 
public static JScrollPane JScrollPane(Component text,int width,int height,int HorizontalScrollBarPolicy,int VerticalScrollBarPolicy) { 
    JScrollPane scrollpane = new JScrollPane(text); 
    scrollpane.setPreferredSize(new Dimension(width,height)); 
    scrollpane.setHorizontalScrollBarPolicy(HorizontalScrollBarPolicy); 
    scrollpane.setVerticalScrollBarPolicy(VerticalScrollBarPolicy); 
    return scrollpane; 
} 
+2

これまでsetXXSize(XX ==分、県、最大) – kleopatra

+0

setPrefferedSizeを使用していない持っているNVRなぜ私はそれを使用しないでください私を失望? –

+0

いいえ、今でもない。 –

答えて

4

それはおそらく推奨サイズを設定し、JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYSを使用しての使用に関係しています。その定数をそこに置くと、スクロールできるかどうかにかかわらず常にスクロールバーが表示されます。

ただ、試してみて、私はそれが動作します賭ける:

new JScrollPane(list); 
+0

いいえ、私はスクロールバーについてのものを削除すると、垂直スクロールバーが表示されません –

+2

あなたはリストの優先サイズを設定します。リストのsetPreferredSize()を削除すれば正常に動作します。 preferredSizeを設定すると、内容に関係なくリストが常にその幅の高さになり、スクロールペインは常にリストの優先サイズとして設定されます。リストに「1000ピクセルにしたい」と表示された場合、スクロールバーでは1000ピクセルになり、表示されない部分にはスクロールバーが表示されます。それ以外の場合、スクロールバーは表示されていない部分を表示しません。 – chubbsondubs

+0

ああ、ありがとう、それは今働く^^ ' –

1

あなたはJListの

例の周りにあなたの側JScrollPaneをラップする必要があります!!!

+0

私はそれが私がdngだと恐れています –

1

手順は以下のとおりです。

  1. はのは "myJList" と言わせ呼ばれる、JListコンポーネントを作成します。

  2. JListComponentを使用してJScrollPaneコンポーネントを作成します。 JScrollPane myScrollPane = new JScrollPane(myJList);

  3. は、GUIにのみにJScrollPaneを追加します.add(myScrollPane)

+0

それは私がdngだと思っています –