感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Java GUIのことはじめ。

<スポンサーリンク>

Java Swingの由来は、スウィングダンスである。
長い間明かされていなかったが、Sharon Zakhourの好奇心により解明された。

Javaの考え方の基本として、Write Once, Run AnyWhereというものがある。
一度書いたらどこでも動く、という素晴らしい理想である。
移植性に悩まされていたJava誕生当時の反省からこの理念が生まれた。

・Java GUIのサンプル
ウィンドウを表示させる

package gui;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;

public class GuiSample1 {
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				launchGUI();
			}
		});
	}
	private static void launchGUI() {
		// タイトルバーとウィンドウ操作ボタン付きの一般的なウィンドウを作成する
		JFrame frame = new JFrame("GUI SAMPLE!");
		//ウィンドウの閉じるボタンが押されたらプログラムを終了する
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//テキストを中央寄せで表示させるラベルを生成する
		JLabel label =
				new JLabel("Hello! GUI Java World!",SwingConstants.CENTER);
		//ラベルに上下8px,左右24pxのマージンを追加
		label.setBorder(new EmptyBorder(8,24,8,24));
		//ウィンドウのコンテンツ領域にラベルを配置
		frame.getContentPane().add(label);

		frame.pack();

		frame.setLocationRelativeTo(null);
		//ウィンドウを表示する
		frame.setVisible(true);

	}
}

GUIコンポーネントは大きく2つに分類できる。
1.ネイティブウィじっとを抽象化する「重量コンポーネント」
2.ピュアJavaで実装される「軽量コンポーネント」

イベントドリブンプログラミング(なんらかのイベントの送受信で動作するプログラムのこと)で重要な考え方として、
ハリウッドの原則(hallywood principle)がある。

ハリウッドの原則とは、オーディションの後、主催者側が前もって役者たちにこう言うことが由来となっている。
「don't call us, we'll call you(こっちから電話するから、お前から電話はするな)」
就職面接にも似ているかもしれない。いちいち受ける側から問い合わせられると、面接官側は困ってしまう。

さて、JavaGUIでは、イベントソース(生成側)を主催者側と見立てる。
合否の通知をイベントの通知。役者達がイベントハンドラ(処理側)。

イベントソースで生成されたイベントは、そのイベントに興味を持つイベントハンドラへ順番に通知される。
イベントハンドラからはイベントの有無を問い合わせない。<参考書籍>

パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)

パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)

  • 作者: アリエル・ネットワーク株式会社,井上誠一郎,永井雅人,松山智大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2009/09/24
  • メディア: 大型本
  • 購入: 26人 クリック: 360回
  • この商品を含むブログ (35件) を見る
この本はJavaで困っている自分を救ってくれた本です。
全てのJavaプログラマーは読むべき本だと思っています。