- PR -

レイアウトマネージャ

1
投稿者投稿内容
Drive
会議室デビュー日: 2002/02/10
投稿数: 11
投稿日時: 2002-05-19 22:02
どうも、いつも参考にさせていただいています。
現在、独自でJavaを勉強しているのですが、Appletのレイアウトが思うように作れません。
具体的には、BorderLayoutのNorth、Center、SouthのレイアウトをBorderLayoutにするということがしたいのですが、上書きされたりしてうまく作れません。
Northなどの各部分に複数のコンポーネントを設置したいのでPanelとの組合せを教えていただければ幸いです。
つまらない質問ですがよろしくお願いします。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-05-20 07:41
Appletの初期化でしたらinit()メソッド内で行うと良いでしょう。

下のアプレットは、BorderLayoutで分けられたApplet内に、同じくBorderLayoutで分けられたパネルを配置します。各パネルの中央、東西南北にはボタンを配置しますのでアプレットを起動すると中央、東西南北にそれぞれ5つずつボタンができるはすです。かなり大きい画面でないと全てのボタンをみれませんが、どんな風に置かれるか参考になるのでは?

こつはパネルをBorderLayoutなどでくぎり、その中にまた別のパネルを置いていくことです。動的に変化させる必要がなければinitで初期化するのがいいでしょう。

コード:
public class TestApplet extends Applet{

    //Applet内に配置されるパネル。
    private Panel center = new Panel();
    private Panel north  = new Panel();
    private Panel south  = new Panel();
    private Panel west   = new Panel();
    private Panel east   = new Panel();

    public void init() {
        super.init();
        setLayout(new BorderLayout(2,2)); //アプレットを分割

        //アプレットの各エリアに置くパネルの初期化と設置
        initPanel(center, "アプレットの中央");
        add(center, BorderLayout.CENTER);

        initPanel(north, "アプレットの北");
        add(north, BorderLayout.NORTH);

        initPanel(south, "アプレットの南");
        add(south, BorderLayout.SOUTH);

        initPanel(west, "アプレットの西");
        add(west, BorderLayout.WEST);

        initPanel(east, "アプレットの東");
        add(east, BorderLayout.EAST);
    }

   /**
    *   パネルをBorderLayoutに分けて、それぞれの場所にボタンを置く
    **/
    private void initPanel(Panel p, String s) {
        p.setLayout(new BorderLayout());
        p.add(new Button(s+"(北)"), BorderLayout.NORTH);
        p.add(new Button(s+"(南)"), BorderLayout.SOUTH);
        p.add(new Button(s+"(東)"), BorderLayout.EAST);
        p.add(new Button(s+"(西)"), BorderLayout.WEST);
        p.add(new Button(s+"(中央)"), BorderLayout.CENTER);
   }
}

Drive
会議室デビュー日: 2002/02/10
投稿数: 11
投稿日時: 2002-05-20 21:10
返事ありがとうございます。
けっこう簡単にできるんですねー。私が懸命に考えてダラダラ長いソースを書いてた
のが馬鹿みたく感じます。というか知らない命令入ってるし…

入門書を読んだだけじゃやっぱり駄目ですね。
入門書+JDK+エディタでゴリゴリやってるつもりなんですが、イマイチ広がりがないというか…
Javaの有益性を感じれないというか。
みなさんどのようにステップを踏んでいるのか気になるのですが、いかがでしょう?
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2002-05-20 23:04
僕の場合もまずは入門書で構文を覚えることからから入りましたよ。

その後Appletに興味を持ってAWT→Swingと言う感じでしょうか。
GUI関連の書籍は多く出てますから、書店で立ち読みして良いのを
探すのがベターだと思いますよ。
最近はJ2EE方面ばっかりでSwingとかほとんど使わないですが・・・

開発環境も初めはJDK+テキストエディタで良いと思います。
(ベテランの方でもこの組み合わせを好まれる方は結構多いですが)
ある程度AWTなりSwingなりがわかってからIDEのフォームエディタを
使うようにするとか。

とにかく「Javaで何をするか」を考えるのが良いと思います。
GUIやWebアプリ、モバイル環境・・・幅は広いですから何をターゲットに
するかと言う目標が無いとなかなか進まないのではないでしょうか?
目標が決まれば自然と方針が見えてくると思いますよ。

あと、僕個人的にJavaWorld誌を毎月購読されるのをオススメします。
色々な情報が載ってますし、勉強になります。
Java周りの動向も掴めますよ。

Drive
会議室デビュー日: 2002/02/10
投稿数: 11
投稿日時: 2002-05-21 01:13
返事ありがとうございます。
たしかに目標をもつことは大事だと私も思います。

しかし、私の場合仕事で使っている訳ではなく、仕事で使っていけるようにと独学中であります。私はWebシステム開発に携わっていきたいと考えてるのですが(Webシステム・・・これもまた大まかな枠組みですが)、実際そのような現場でJavaはどのような開発手法でどのように使われているのがいまいち掴めないというのが正直なところです。実際携わっていないとはいえ、それ自体勉強不足なのですが…。

みなさんのレスは大変参考になります。
また参考になるステップアップ法などあればご教授願います。

まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-05-21 09:53
私的には「JAVA Press」「WEB+DB Press」あたりが好きです。
本のサイズが手ごろで通勤カバンにさっと入ります。

「これを実現するにはどうやればいいのか?」と考えたり、
他人の設計を見て「なぜこんなことをしているのか?」と考えたり、
これの繰り返しではないかと思います。
はたはた
常連さん
会議室デビュー日: 2002/01/27
投稿数: 25
投稿日時: 2002-05-21 10:45
私も、直接仕事で使っていないのですが、
製品の動作確認を行うようなツールは出来る限りJavaで書くようにしています。
やはり、作りたいものが具体的に分かっていると、モチベーションが保てますよね。
それから、マルチスレッド、JDBC、RMI・・・などに集中したいため、
swingはあまり使っていません。もっぱら、CUIです。
1

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