レイアウトを自由に設定

今までいろいろなラベル、ボタン、テキストフィールドなどコンポーネントをadd()メソッドで追加してきました。
しかし、それはただ、アプレット領域にやみくもに貼り付けていただけです。
したがってアプレット領域を変更すればコンポーネントのレイアウトも変わってきました。
ここでは、そのコンポーネントのレイアウトの配置を設定してレイアウト崩れを回避する方法について見ていきます。

今回使うメソッドはjava.awt.ContainerクラスのsetLayoutメソッドです。

コンポーネントの配置にはsetBounds()メソッドを使います。
それらのメソッドを利用してプログラムの作成を行いたいと思います。

まずは、レイアウトの配置を設定しなかった場合はどうなるかというと、もう既に説明したと思いますので、 こちらを参照してください。

こちら

ボタンの追加のとこで説明しました。
アプレット領域を小さくすればボタンの配置も変更されていました。

では、レイアウトを設定したプログラムの作成をしたいと思います。

サンプルプログラム(AppletSample26.java)

//java.appletパッケージをimport宣言
//java.awtパッケージもimport宣言

import java.applet.*; import java.awt.*; public class AppletSample26 extends Applet{ public void init(){ //AWTのGUIコンポーネントクラスの作成 Label la = new Label("はじめてのJava入門"); Button bu = new Button("ボタンです"); TextField tf = new TextField("テキストフィールドです",20); TextArea tx = new TextArea("テキスト\nエリアです",3,60); //レイアウトを自由に設定する setLayout(null); //アプレット領域にGUIコンポーネント(部品)の追加(載せる)
add(la); add(bu); add(tf); add(tx); //コンポーネントを指定した位置に配置する。 la.setBounds(50,10,130,20); bu.setBounds(70,40,80,20); tf.setBounds(40,80,150,20); tx.setBounds(60,120,100,50);
} }

プログラムをコピーする場合すべて選択をクリックしてください。

HTMLの作成(AppletSample26.html)

<html>
  <head>

      <title>アプレット26</title>
  </head>
   <body>

<h1>レイアウトを自由に設定する</h1> <applet code="AppletSample26.class" width="250" height="250"></applet> </body> </html>

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

では、コンパイルし、AppletSample26.htmlをアプレットピューアしてみます。
以下のような結果になります。

このようになります。
この作成したアプレットのサイズを試しに小さく変更してみたいと思います。

どうですか?
アプレットのサイズを変更してもコンポーネントの配置はかわりません。
もう一度今回使用したメソッドを見てみたいと思いますが、

まず、setLayout(null);とすることでレイアウトの設定を許可することになります。
つまり、レイアウトを自由に変更できますよ!という意味になります。

コンポーネントの配置を決めるメソッドが、setBounds(int x,int y,int width,int height)です。

引数は

setBounds(x座標,y座標,コンポーネントの幅,コンポーネントの高さ);
ページのトップへ戻る