Apdesigner プログラマーズガイド
目次 索引 前ページ次ページ

第3部 Apdesigner利用編> 第10章 Javaフォームとアプレットを定義する> 10.17 Javaフォームに装飾する

10.17.4 フォーム装飾機能を有効にする

フォームおよびクラス継承フォームをフォーム装飾機能で装飾した場合、フォームのpaintメソッドから以下のフォーム装飾描画メソッドを呼び出す必要があります。

フォームの場合に呼び出すフォーム装飾描画メソッド

private void paintForm(java.awt.Graphics g);

クラス継承フォームの場合に呼び出すフォーム装飾描画メソッド

private void paintForm$(java.awt.Graphics g);

以下に呼び出し例を記述します。

 /**
  * フォームの画面を更新します。
  * @param g グラフィックス
  */
 public void update(java.awt.Graphics g) {
  paint(g);
 }
 /**
  * フォームを描画します。
  * @param g グラフィックス
  */
 public void paint(java.awt.Graphics g) {
     java.awt.Rectangle clip = g.getClipBounds();
     if( clip == null ) {
         clip = getBounds();
         clip.x = 0;
         clip.y = 0;
     }

     // 背景を描画します。
     java.awt.Color color = g.getColor();
     g.setColor(getBackground());
     g.fillRect(clip.x,clip.y,clip.width,clip.height);
     g.setColor(color);

     // フォーム装飾を描画します。
     paintForm(g);

     // 子供を描画します。
     java.awt.Component child;
     java.awt.Component children[] = getComponents();
     java.awt.Graphics g2;
     java.awt.Rectangle rect;
     for(int i = children.length-1 ; i >= 0 ; i-- ) {
         child = children[i];
         rect = child.getBounds();
         if( rect.intersects(clip) &&
             child.isLightweight() &&
             child.isVisible() ) {
             g2 = g.create(rect.x,rect.y,rect.width,rect.height);
             g2.setFont(child.getFont());
             try {
                 child.paint(g2);
             }
             finally {
                 g2.dispose();
             }
         }
     }
 }

フォームが装飾されていてフォームにpaintメソッドが定義されていない場合、フォーム保存時にpaintメソッドが自動的に挿入されます。

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006