ここから本文です

JavaのSwingを用いて、上下にテキストエリアを作成し、その右側にコンボボックス一...

mon********さん

2009/9/917:21:08

JavaのSwingを用いて、上下にテキストエリアを作成し、その右側にコンボボックス一つとボタンを一つ置きたいのですが、いざ実行してみるとテキストエリアが一つしか表示されず困っています。

テキストエリアのサイズを調節するのはBorderを使うということは分かったんですが、そこからが上手くいきません。
ネットにあるサンプルを見ても書き方は人によって違うみたいですし、どうしてよいのか…
以下、ソースです。どこをどう変更したらテキストエリアを上下に二つ並べられてなおかつ右側にコンボボックスとボタンの分の余白を作れるでしょうか?
不足している部分があれば補足します。
(ソース全部は書ききれないためテキストエリアに関する部分のみ記載します。)

// コンストラクタ
Henkan() {

// タイトルバーを設定する
setTitle("簡単敬語変換");
// ウィンドウを閉じたときにアプリケーションを終了する
setDefaultCloseOperation(this.EXIT_ON_CLOSE);
// メニューバーを作成する
MenuBar();
// 入力テキストエリアを作成する
NTextArea(50, 50);
// 出力テキストエリアを作成する
STextArea(50, 50);
// ウィンドウを可視化する
setVisible(true);
// 全体のサイズ
setSize(500,400);
// Look&FeelをWindowsモードにする
OnLookAndFeel("Windows");

}

// 入力テキストエリアを作成する
void NTextArea(int tate, int yoko) {
textArea1 = new JTextArea();
textArea1.setWrapStyleWord(true);
textArea1.setLineWrap(true);
JScrollPane scroll = new JScrollPane(textArea1);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setPreferredSize(new Dimension(tate, yoko));
getContentPane().add(scroll, BorderLayout.CENTER);
}

// 出力テキストエリアを作成する
void STextArea(int tate, int yoko) {
textArea2 = new JTextArea();
textArea2.setWrapStyleWord(true);
textArea2.setLineWrap(true);
JScrollPane scroll = new JScrollPane(textArea2);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setPreferredSize(new Dimension(tate, yoko));
getContentPane().add(scroll, BorderLayout.CENTER);
}

補足回答ありがとうございます。
無事にテキストエリアはできたんですが、JScrollPaneのつけかたが分からなくなってしまいました。
パネルの中にテキストエリアを作っているので、
JScrollPane scroll = new JScrollPane(textArea1);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setPreferredSize(new Dimension(tate, yoko));
のようにはつけられませんし…
どうすればよいのでしょうか?

閲覧数:
853
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

編集あり2009/9/917:31:35

両方とも設置場所をBorderLayout.CENTERにしているからです。
同じ場所にしてしまうと後から配置したもので上書きされてしまいます。
2つのテキストエリアをJSplitPaneに貼り付けて、それをCENTERへ設置すればいいのではないでしょうか。
また、右側に配置するにはBorderLayout.EASTを使えば大丈夫です。

JSplitPaneについて
http://www.javadrive.jp/tutorial/jsplitpane/
BorderLayoutについても調べるといいでしょう
http://www.javadrive.jp/tutorial/borderlayout/index.html

質問した人からのコメント

2009/9/9 19:33:09

回答ありがとうございました。
JScrollについてはまた別に質問したいと思いますので、時間がありましたらよろしくお願いします。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる