4

borderlayout(WEST) で jscrollpane の優先幅を設定しようとしていますが、機能していません。

私のサンプルコードを見てください

JTree tree=new JTree(root);  
JScrollPane jsp=newJScrollPane(tree);
jsp.setBounds(0,0,200,100);
Jframe.add(jsp,BorderLayout.WEST);

しかし、それはデフォルトの幅を示しています。

または、 JTree の優先サイズを設定しようとしましたが、正常に動作していますが、jscrollpane が正しく動作していません。これで私を助けてください。

4

1 に答える 1

3

コンポーネントのサイズ (最小/最大/優先) に基づいて、コンポーネントの位置を決定するのはレイアウト マネージャーです。したがって、 への呼び出しsetBoundsは無視され、代わりにBorderLayoutがコンポーネントの配置場所を決定します。

通常、このメカニズムは問題なく機能します。a の問題JScrollPaneは、サイズのヒントが動作として必要なものと同期していない可能性があることです (スクロール ペインにはスクロール バーがあり、独自のサイズを決定できるため)。

setPreferredSize解決策: 追加するJScrollPane前に を呼び出すだけです。これは公式チュートリアルでも行われており、このメソッドを呼び出すことが許容されると私が考えることができる唯一の時間です。

于 2012-12-09T07:50:54.637 に答える