Java、Swingについての質問です。


初心者で、Javaを最近始めました。

Swing?を利用して、テキストエリアやボタンなどを設置する方法はわかったのですが、

フォームの中で、自分の意図する位置に配置を行うことができません。

どこか、わかりやすく配置の方法が書かれているサイトを紹介してもらえないでしょうか?

解答内でかんたんなソースを書いていただけるとさらに助かります。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/04/19 17:50:43
  • 終了:2007/04/26 17:55:03

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/04/19 22:32:51

ポイント35pt

Java:Swing:LayoutManager

Swing の画面デザインはレイアウトマネージャーが全てです。

それぞれのレイアウトマネージャーの挙動をうまく利用すれば必ず思い通りのレイアウトが出来ます。


ポイントとしては、Frame を多用しすぎか?と思うぐらい使ってみることでしょうか。

Frame ごとに別々のレイアウトマネージャーを設定できますので、

グループごとにレイアウトをそろえたい場合などに便利です。

id:zachouR

ありがとうございます、b-windさんはいろいろな言語に精通していらっしゃるのですね!

とりあえず、とっかかりとしてJPanelを多用してみようと思います。

Frameを連続して並べるときなど(毎度、言葉が伝わりづらくてすいません)いまいちわかりませんが、いろいろやってみます。

2007/04/20 15:35:16
id:tarchan No.2

たーちゃん回答回数200ベストアンサー獲得回数22007/04/20 02:23:19

ポイント35pt

Javaはレイアウトマネージャーを使って相対的に並べるのが一般的です。

Java:Swing:LayoutManager

http://www.javadrive.jp/tutorial/layout/index.html

id:zachouR

ありがとうございます。

HTMLのテーブルのような感じで理解しましたが、あっているのでしょうか?

2007/04/20 15:36:08
  • id:b-wind
    実際サンプルでも見ないと分かりにくいでしょうけど、
    >Frameを連続して並べるとき
    たとえばいくつかの Frame を横に並べたければ、その Frame 群を含む親 Frame を設置して、その親 Frame に行が1つの GridLayout を設定する等です。

    最初はこれでもかというぐらい Frame を入れ子にしてしまってよいです。
    慣れてきたら最適化するほうがいいですけど。
  • id:zachouR
    ありがとうございます。

    とりあえず、

    //描画
    JPanel pane1 = new JPanel();
    pane1.setLayout(new BoxLayout(pane1, BoxLayout.PAGE_AXIS));
    p0.setPreferredSize(new Dimension(300,50));
    pane1.add( p0 );
    p1.setPreferredSize(new Dimension(300,50));
    pane1.add( p1 );
    p2.setPreferredSize(new Dimension(300,650));
    pane1.add( p2 );
    p3.setPreferredSize(new Dimension(300,50));
    pane1.add( p3 );
    getContentPane().add( pane1 );

    こんな、感じでやってみました。

    縦にどんどん並べていけるという事でとりあえずは、
    目的を達せたかな、と。

    しかし、かならず行き詰まりそうなので、Frameをもっと
    詳しくやってみたいと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません