Javaプログラミング/サーバサイド&ケータイJava

復活なるか? Visual Editor!(5ページ目)

長らくEclipse Foundationから姿を消していたVisual Editorが、いよいよ復活? その開発版を使ってみましょう。

執筆者:掌田 津耶乃

生成されるソースコードを見る


では、デザイナーを使ってマウスでデザインした画面表示は、どのような形で実装されているのでしょうか。生成されるソースコードを見てみることにしましょう。ここでは、LabelとButtonを1つずつ

package jp.allabout;

import java.awt.Frame;
import java.awt.Button;
import java.awt.BorderLayout;
import java.awt.Label;

public class SampleApp extends Frame {

  private static final long serialVersionUID = 1L;
  private Button button1 = null;
  private Label label1 = null;

  public SampleApp() {
    super();
    initialize();
  }

  private void initialize() {
    label1 = new Label();
    label1.setText("ラベル");
    this.setSize(300, 200);
    this.setTitle("Frame");

    this.add(getButton1(), BorderLayout.SOUTH);
    this.add(label1, BorderLayout.NORTH);
  }

  private Button getButton1() {
    if (button1 == null) {
      button1 = new Button();
      button1.setLabel("Click");
      button1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          System.out.println("actionPerformed()"); // TODO
        }
      });
    }
    return button1;
  }

}

見ればわかるように、コンポーネントの組み込み処理は、initializeというメソッドにまとめられています。Labelなどは、インスタンス作成と設定、組み込み処理がそのままinitializeに追加されていますね。

が、Buttonは、「getButton」という専用メソッドが用意され、ここでインスタンスの準備をしています。Buttonなどはイベント処理も含めた複雑な処理をすることが多いので、インスタンス生成の専用メソッドを使う形になっているのでしょう。またイベントの組み込みも、無名クラスを使った形で組み込まれています。このあたりは、人によって好みの分かれるコーディングといってよいでしょう。

デザイナーを使ったコーディングの最大の問題点は、「自分流のコードが書けない」という点にあるように思えます。とにかくデザイナーが自動生成したソースコードを黙って使うしかない。あれこれ修正するとデザイナーが動かなくなってしまう。人によっては、これを嫌い、「だったら全部自分で手書きしたほうがいい」となってしまうかも知れません。そのあたりを見極めた上で、ある程度割り切って使うのであれば、Visual EditorはGUI作成の便利ツールとして役立つはずですよ。
【編集部おすすめの購入サイト】
Amazonで Java 関連の書籍をチェック!楽天市場で Java 関連の書籍をチェック!
  • 前のページへ
  • 1
  • 3
  • 4
  • 5
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます