プログラマーの常識を学ぶ前にプログラマーの常識をJavaで身につける(1)(2/2 ページ)

» 2007年01月31日 00時00分 公開
[伊賀敏樹NTTデータ ビジネスブレインズ]
前のページへ 1|2       

動作確認のためのシンプルSwingアプリを準備

 常識をひもといていくのに先立ち、確認作業で利用するベースとなるアプリケーションを用意しておきましょう。デスクトップが次回のテーマなので、シンプルなSwingアプリを用意しておき、そのアプリケーション上でさまざまな確認をしていきます。

編集部注:Swingについて詳しく知りたい読者は、「SwingでJavaに強くなる(1) SwingのキホンJFrameを使う」を参照してください。

SimpleSwingFrame.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class SimpleSwingFrame extends JPanel {

    public SimpleSwingFrame() {
        // 背景色を白色にします
        setBackground(Color.white);
    }
    public void paintComponent(final Graphics argGraphics) {
        super.paintComponent(argGraphics);
        // 赤色で画面の大きさいっぱいに円を描画します
        argGraphics.setColor(Color.red);
        final Rectangle rect = getBounds();
        argGraphics.drawOval(0, 0, rect.width, rect.height);
    }
    private static void createAndShowGUI() {
        // JFrameを作成して自分自身を張り付け、これを表示します
        final JFrame frame
            = new JFrame("シンプルなSwingフレームサンプル");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new SimpleSwingFrame());
        frame.setLocationRelativeTo(null);
        frame.setSize(400, 400);
        frame.setVisible(true);
    }
    public static void main(final String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

訂正のお知らせ(2007年2月8日)

読者から、上記のSimpleSwingFrame.javaについて貴重なご指摘を頂き、ソースコードを2007年1月31日発表時のものから差し替えさせて頂きました。

内容について正確を期すことができなかった点、読者の皆様におわび申し上げます。


 何の変哲もないただ単にウィンドウを開くシンプルな Swingアプリです。プログラムが動作していることを確認するために、ウィンドウサイズいっぱいに丸を描画しています。

図3 シンプルなSwingフレームサンプル 図3 シンプルなSwingフレームサンプル

 Windows XP上で実行してみると、ウィンドウが新たに表示され、またタスクバーにウィンドウタイトルが表示されることが確認できます。

図4 タスクバーにウィンドウタイトルが表示 図4 タスクバーにウィンドウタイトルが表示

 OSの設定などにより、ウィンドウタイトルの一部などが表示されます。一般的なWindowsアプリケーション同様の最低限の挙動をすることが分かります。

 このように、APIや機能などの確認のために、基本となるプログラムを用意しておくと、とても便利です。また、こういった基本となるプログラムは、行数が短ければ短いほど(ソフトウェア規模が小さければ小さいほど)扱いやすいことをお伝えします。

Javaコアパッケージを通じて新しい発見を体験!

 今後の連載予定としては以下ののようになっています。

テーマ 主な内容
2 デスクトップの常識 ・java.awt.Colorクラスで学ぶ色(RGB値など)
・java.awt.Cursorクラスで学ぶカーソル
・java.awt.FontとFontMetricsクラスで学ぶフォント
3 数に関する常識 ・java.lang.Mathクラスでの数学関数の使い方と応用
・java.util.Currencyクラスで学ぶ通貨
4 時間の常識 ・java.util.Calendar、java.util.GregorianCaleandar、java.util.Dateクラスで学ぶ時間の概念
・java.util.Locale、TimeZoneクラスで学ぶ国、ロケール
・java.util.Timer、TimerTaskクラスでタスク、スケジュール
5 文字についての常識 ・パッケージ java.util.regexで学ぶ正規表現
・パッケージ java.nio.charsetで学ぶ文字エンコード
6 ファイル操作の常識 ・パッケージ java.ioで学ぶファイル操作
・java.util.Propertiesクラスで学ぶプロパティファイル
・パッケージ java.util.loggingで学ぶログ操作
7 イベントの常識 ・パッケージ java.awt.printとjavax.printで学ぶプリンタ操作
・パッケージ java.awt.eventとdndで学ぶイベントの種類と基礎
8 圧縮技術の常識 ・パッケージ java.util.zipとjava.util.jarで学ぶ圧縮技術
・パッケージ javax.imageio.*で学ぶ画像データ(JPEG、BMP)
9 音に関する常識 ・パッケージ javax.accessibilityで学ぶユーザー補助機能
・パッケージ javax.sound.*で学ぶ音楽データ
10 インターネットの常識 ・パッケージjava.net.*とjavax.net.*で学ぶインターネットやプロキシー
・パッケージ javax.swing.text.htmlで学ぶHTML
11 セキュリティの常識 パッケージjava.security.*とjavax.security.*で学ぶセキュリティ
12 アクセス権の常識 パッケージjava.security.*とjavax.security.*で学ぶアクセス権
13 暗号化・鍵技術の常識 パッケージ javax.cryptoとjavax.net.sslで学ぶ暗号化・鍵技術
以下未定 以下未定
表 今後の「常識」の内容
編集部注:連載の順番や内容などは予定と変わる場合もありますので、あらかじめご了承ください。

 Java言語は応用範囲が広いので、ほとんどのJavaプログラマーが常識として知っているJavaコアパッケージは、ほんのごく一部だと思います。

 例えば、WebアプリケーションサーバのJavaプログラマーの方は、java.awt.Cursorなどは実務では利用したことがないことでしょう。また、携帯アプリを担うプログラマーの方は、一般のプログラマーの方の常識とは異なった常識が求められ、またそれを身に付けているのです。これはJava言語の応用範囲が広いことに起因します。

 何度も言いますが、この連載は「プログラマーの常識をJavaで身に付ける」ような切り口で話を進めていきます。それによって、Webアプリケーションサーバのプログラミングを生業とされている方であっても、普段使ったことのないJavaコアパッケージを使ってみることは新鮮で、いくつかの発見があることを期待してください。

 最初に、「デスクトップの常識」ということで、「」「カーソル」「フォント」について解説します。それでは、次回をお楽しみに。

筆者紹介

blanco Framework(コミッタ)

伊賀 敏樹(いが としき)
ハンドル:いがぴょん

1968年生まれ。現在、NTTデータ ビジネスブレインズ 第一SI事業部 ソリューショングループ所属。システム開発の技術支援などに従事する。仕事におけるJava言語とのかかわりは1998年から。 現在 blanco Frameworkというオープンソースによるソースコード自動生成タイプの開発フレームワーク提供に取り組んでいる。 趣味はヴァイオリン演奏。アマチュアオーケストラで演奏することもある。

ホームページ
いがぴょんの日記ウェブページv2(1996年から続けているWeb日記)

主な著書
やさしく学ぶ基礎からのJDBC
Javaプログラミング[アプリケーション編]ステップアップラーニング



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。