awtコンポーネントのデザイン

awtコンポーネントの色やフォントなど 基本的なデザインを指定する方法を説明します。


コンポーネントのクラスは全て Componentクラスを先祖とします。
Button などの部品、 Panel や Appletクラスも、以下に説明する 性質を Componentクラスから継承しています。 特に色やサイズなどの基本的なデザインを指定する方法は、 サブ・クラスの中で変更されないので、すべてのコンポーネントの クラスに共通の取り扱いができます。 例として Button クラスを用いて説明しますが、同じ方法は 他のクラスでも使えるわけです。



   /** インターフェイスの部品の宣言 */ 

      public Button greenButton;

   /** フォントと色の宣言 */ 

      public Font  italicFont;
      public Color ivory, forestGreen;

   /** 初期設定のメソッド */

      public void init() {

           ivory = new Color( 250, 250, 235 );         // RGB の値を指定
           this.setBackground( ivory );                // 背景色の設定

           greenButton = new Button( "Green" );
           forestGreen = new Color( 35, 140, 35 );    // RGB の値を指定
           greenButton.setBackground( forestGreen );  // 背景色の設定
           greenButton.setForeground( Color.white );  // 前景色の設定
           italicFont = new Font( "TimesRoman", Font.ITALIC, 24 );
           greenButton.setFont( italicFont );         // フォントの設定
           add( greenButton );
      }


Componentのサブ・クラスに共通するデザインの操作
名称 機能
void setForeground( Color ) 前景色の設定
Color getForeground() 前景色の取り出し
void setBackground( Color ) 背景色の設定
Color getBackground() 背景色の取り出し
void setFont( Font ) フォントの設定
Font getFont() フォントの取り出し
FontMetrics getFontMetrics() フォント・メトリックの取り出し
*設定はフォントの設定時に
自動的に行われる
void setSize( int, int )
void setSize( Dimension )
サイズの設定
Dimension getSize() サイズの取り出し
void setVisible( boolean visibility ) 表示のコントロール
void show() 表示させる
( setVisible(true)と同じ )
void hide() 表示をやめる
( setVisible(false)と同じ )
boolean isVisible() 表示されているかどうか調べる
void setEnabled() 操作可能かをコントロールする
void enable() 操作可能にする
( setEnabled(true)と同じ )
void disable() 操作不可能にする
( setEnabled(false)と同じ )
boolean isEnabled() 操作可能かどうか調べる

*JDK1.1 から、デザインをコントロールする メソッドの名称が一部変更になっています。 (JDK1.0 で用いられていたメソッド名もエラーにはなりませんが、 コンパイル時に警告がでます。)
新しい名称は Beansの規格に適合させる目的があります。 これからのプログラムではなるべく新しい名称を用いるようにしてください。

**コンポーネントのサイズは、ボタンのラベル文字列や入力アイテムの文字数 に合わせて自動的に調整されます。 ただし、どのようなポリシーで調整されるかは awt の実装ごとに異なります。 すなわち、マシンやシステムによって細かなデザインが異なる可能性もあるわけです。 また setSize() のメソッドによる指定よりも、自動調整のサイズが優先される こともしばしばあるので注意が必要です。