プロが教えるわが家の防犯対策術!

JScrollPaneについて、質問させて頂きます。

JScrollPaneに、JTextAreaを縦一列に配置したJPanelを追加しようとしたのですが、何故かJScrollPaneに配置すると、JPanel内のJTextAreaの配置が横一列になってしまいます。

つまり、現在は

TEST1 TEST2 TEST3 TEST4....(JTextAreaを並べたJPanelです)

となっているJScrollPaneを

Test1
Test2
Test3
Test4

のように表示したいのです。

大学の授業に絡むコードですので全てを貼付けるとネットから拾ってきたのではと思われてしまうため、全ては貼付けられませんがコードの一部を張りつけさせて頂きます。

まずはJScrollPaneの設定ですが

private JScrollPane getScroll()
{
if (scroll == null)
{
scroll = new JScrollPane(innerHomeTimeLine);
scroll.setPreferredSize(new Dimension(width, height));
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setWheelScrollingEnabled(true);
}
return scroll;
}

としてJScrollPaneを作成しています、innerHomeTimeLineはJTextAreaを縦一列に並べたJPanelです。

このJScrollPaneを
this.add(getScroll(),BorderLayout.NORTH);
でJPanelに追加し、そのJPanel(homeTimeLine)をthis.add(homeTimeLine,BorderLayout.CENTER);
でJAppletに追加し、表示しています。

JPanel(innerHomeTimeLine)そのものをJAppletに追加すると縦一列に並んだまま表示出来るのは確認しているので、JScrollPaneの設定の問題だと思うのですが、どうすれば良いのでしょうか....

やり方をご存知の方がいましたら、解答して頂けると助かります、宜しくお願いします。

さすがにこのコードだけでは解答は無理、といったことでしたら、必要な部分を教えて頂ければ、抜き出して追記させて頂きます。

A 回答 (1件)

縦一列に並べた、ということですが、


JTextAreaを貼り付けるJPanelのレイアウトマネージャは何を使っていますか。
JPanelのデフォルトだとするとFlowLayoutになりますが、
それは横に並べるものになります。
JAppletに貼り付けて縦に並んで見えたのは、
折り返されたからかもしれません。
レイアウトマネージャをsetLayout で
GridLayoutとかBoxLayoutとかにしてみてはどうでしょうか。

この回答への補足

解答ありがとうございます。
確認してみましたが
innerHomeTimeLine.setLayout(new BoxLayout(innerHomeTimeLine, BoxLayout.PAGE_AXIS));
となっていましたので、レイアウトマネージャは関係ないようです、引き続き色々試してみます。

補足日時:2012/07/06 01:14
    • good
    • 0
この回答へのお礼

失礼しました、ソースコードを見直したところ、setLayoutを二カ所で行っていて、その片方が先ほど補足した状態になっていただけで、もう一カ所はご指摘の通りFlowLayoutのままでした。
その部分を改善したところ、無事に想定していた動作が行われました、ありがとうございます。

お礼日時:2012/07/06 01:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!