2011-01-24 15 views
14

みんな、jscrollpanelにいくつかのボタンを入れる必要がありますが、JScrollPaneはスクロールを垂直に作成しません。私は単純なFlowLayoutレイアウトを使用しているJScrollPaneの中でJPanelを使用しています。 JScrollPanelを垂直方向にのみスクロールさせるにはどうすればよいですか?JScrollPaneを垂直方向にのみスクロールさせるにはどうすればよいですか?

問題:

enter image description here

目的のソリューション: enter image description here

答えて

13

チェックアウトこれは、水平スクロールを作成せずに次の行にテキスト領域に何かをラップするWrap Layout

1
scrollbar = new Scrollbar(Scrollbar.VERTICAL); 
+0

これは、レイアウトに関する問題を解決するためには絶対に何もしません。スクロールバーを作成しません。 OPにはすでに 'JScrollPanel'によって提供されるスクロールバーがあります。 – Nateowami

4

あなたはかなりの内部FlowLayoutに関するいくつかのことをJScrollPane変更を使用すること。実際、FlowLayoutが含まれているJButtonをレイアウトしようとすると、利用可能なスペースが使用されます。あなたのケースでは、JScrollPaneの「スクロール可能なクライアント」のスペースに制限はありません。結果として、あなたのFlowLayoutが無限のスペースを持っていると考えると、このスペースを使って項目を表示します。

したがって、表示可能領域をJScrollPaneのJViewportと同じに制限するために、スクロール可能なクライアントを変更する方法があります。

しかし、この場合でも、FlowLayoutはこのケースをうまく処理しないため、ラインが返されることはありません。

私はあなたになりましたが、私はもちろん他のレイアウトを選択します。 GridLayoutは境界を本当にうまく処理しないので、あなたが使用できる唯一の合理的な標準レイアウトはGridBagLayoutだと私は思っています。

4
JTextArea c = new JTextArea(); 
c.setLineWrap(true); 
c.setWrapStyleWord(false); 

関連する問題