- PR -

JScrollPaneとJTabbedPaneについて

1
投稿者投稿内容
ふく
常連さん
会議室デビュー日: 2005/11/15
投稿数: 25
投稿日時: 2006-03-06 16:18
お世話になります。
掲題の件で、私には理解できないことが起きたので、どなたかご教授ください。

まず、10行のJTextAreaに3行表示指定のJScrollPaneを付与してJDialogにaddすると
見た目は3行で、スクロールで10行まで表示できるオブジェクトが作成されます。

この後に、JTabbedPaneをJDialogに追加すると、なぜかJTextAreaのViewが無効(?)になり
JTextAreaが見た目10行で表示されてしまいます。

これはなぜでしょうか?

Javaの環境はJ2SDK1.4.2_10です。

以下、参考ソースです。
/***********************************************************************/
// スクロールパネルを生成
JScrollPane jspanel;

// テキストエリア
JTextArea jtarea = new ComAreaControl(LINE_10, SIZE_60);
// Enable設定
jtarea.setEnabled(false);
// スクロールパネルにラベルを追加
jspanel = new JScrollPane( jtarea ); // 注意喚起

// 背景を白に設定
jspanel.getViewport().setOpaque( true );
jspanel.getViewport().setBackground( jtarea.getBackground() );

/* ViewPortのサイズ設定 */
// JTextAreaのサイズを取得
Dimension dim = comAKanki.getPreferredScrollableViewportSize();
// 横サイズ指定 スクロールバー分のサイズを足す
dim.width = dim.width + SIZE_20;
// 縦サイズ指定 3行分の表示(3行分ぴったりだと窮屈なので+5している)
dim.height = dim.height / LINE_10 * LINE_3 + SIZE_5;

// パネルのサイズ補正
jspanel.setPreferredSize( dim );


JTabbedPane j_tab = new JTabbedPane( SwingConstants.TOP, JTabbedPane.SCROLL_TAB_LAYOUT );

/*タブの中身を作成する処理(略)*/
/*※タブの中身を作成する処理があってもなくても現象変わらず*/

// BorderLayoutでもGridBagLayoutでも現象は同じでした
getContentPane().setLayout( new BorderLayout() );
getContentPane().add(jspanel);
getContentPane().add(jtab);

/***********************************************************************/

以上、よろしくお願い致します。

_________________
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-03-06 18:09
ComAreaControl ってクラスは独自のクラスでしょうか?
貼り付けたコードには JDialog が登場しないようですが、JFrame 等でも再現するのでしょうか?
ふく
常連さん
会議室デビュー日: 2005/11/15
投稿数: 25
投稿日時: 2006-03-06 19:30
インギさん

お返事ありがとうございます。m(__)m

すみません、自己解決しました。
どうやらダイアログのサイズが小さかったみたいです。
swingってちょっとしたことで画面レイアウトがぐちゃぐちゃになりますね。^^;
初歩的なことと思いますが、勉強になりました。

どうもありがとうございました。m(__)m
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2006-03-08 09:32
引用:
swingってちょっとしたことで画面レイアウトがぐちゃぐちゃになりますね。^^;


間違わなければ、ぐちゃぐちゃにはなりませんよ。
まいるどきゃっと
大ベテラン
会議室デビュー日: 2004/08/12
投稿数: 135
お住まい・勤務地: 群馬
投稿日時: 2006-03-08 11:07
引用:

ふくさんの書き込み (2006-03-06 19:30) より:

swingってちょっとしたことで画面レイアウトがぐちゃぐちゃになりますね。^^;



それは単に作り方が悪いだけですね。
レイアウトについて勉強してみましょう。
1

スキルアップ/キャリアアップ(JOB@IT)