紙コップ

Javaアプリケーションの雛形1

2009-02-17 12:20:26

Javaアプリケーションの雛形その1です。仕様は、以下のような感じです。



・Frameクラスを継承して作成

・staticフィールドで、フレームのタイトル、幅、高さを指定。必要があればここを書き換えると任意のサイズのフレームを作成できる。

・SetCenterLocationクラスはsetLocationメソッドを持ち、引数に指定したターゲットコンポーネントを画面中央に配置します。

・setLocationメソッドはstaticメソッドです。そのためインスタンスを作成せずに「SetCenterLocation.setLocation(コンポーネントクラス)」でターゲットコンポーネントを画面中央に配置できます。



今回の雛形は、ディレクトリの階層構造が以下のようになっています。



/AppliTemplate1

   ├/com

   │ └/aquaplace

   │   ├ SetCenterLocation.java

   │   └ SetCenterLocation.class

   │

   ├ AppliTemplate1.java

   ├ AppliTemplate1.class

   ├ MANIFEST.MF

   ├ AppliTemplate1.bat

   └ AppliTemplate1.sh





最終的にjarの中身はこうなります。



AppliTemplate1.jar

   ├/com

   │ └/aquaplace

   │   └ SetCenterLocation.class

   │

   ├ AppliTemplate1.class

   └ MANIFEST.MF





■Javaソースコード(AppliTemplate1.java)

/**

* Javaアプリケーションの雛形1

*/



import java.awt.*;

import java.awt.event.*;

import com.aquaplace.*;



public class AppliTemplate1 extends Frame {

  private static String TITLE = "Javaアプリケーションの雛形1";

  private static int WIDTH = 320;

  private static int HEIGHT = 240;

  public static void main(String[] args) {

    AppliTemplate1 appli = new AppliTemplate1();

  }

  public AppliTemplate1() {

    super();

    

    addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent we) {

        System.exit(0);

      }

    });

    

    setTitle(TITLE);

    setSize(WIDTH, HEIGHT);

    

    //フレームを中央に

    SetCenterLocation.setLocation(this);

    

    validate();

    setVisible(true);

  }

}





■Javaソースコード(com/aquaplace/SetCenterLocation.java)

package com.aquaplace;



import java.awt.*;



public abstract class SetCenterLocation {

  public static void setLocation(Component targetComp) {

int screenWidth =

      Toolkit.getDefaultToolkit().getScreenSize().width;

    int screenHeight =

      Toolkit.getDefaultToolkit().getScreenSize().height;

    

    int centerX =

      (screenWidth - targetComp.getSize().width) / 2;

    int centerY =

      (screenHeight - targetComp.getSize().height) / 2;

    

    targetComp.setLocation(centerX, centerY);

  }

}





■マニフェストファイル(MANIFEST.MF)

Main-Class: AppliTemplate1

Class-Path: .

Created-By: 1.6.0_10





■Windows用バッチファイル(AppliTemplate1.bat)

javac -classpath . *.java

jar cvfm AppliTemplate1.jar MANIFEST.MF *.class com/aquaplace/*.class

java -classpath . -jar AppliTemplate1.jar





■Linux用シェルスクリプトファイル(AppliTemplate1.sh)

#!/bin/sh

javac -encoding SJIS -classpath . *.java

jar cvfm AppliTemplate1.jar MANIFEST.MF *.class com/aquaplace/*.class

java -classpath . -jar AppliTemplate1.jar





Linux環境でコンパイルする際は、ソースコードのエンコード形式に注意する必要があります。LinuxでのjavacコマンドはソースコードをUTF-8で書かれたものとして処理します。もし、Windowsなどで作成したソースコードがShiftJISなどの場合は、-encodingオプションをつけて、エンコード形式を指定する必要があります。



今回の例では、ソースコードをShiftJISで保存したと仮定して、-encodingオプションをSJISに指定しています。



Linux用シェルスクリプトファイルは、作成したshファイルをchmodコマンドで実行権を付与する必要があります。このテンプレート例では「chmod u+x AppliTemplate1.sh」となります。



この記事が、参考になった、面白かったという方はクリックをお願いいたします!





[ブログ内検索用キーワード]

雛形 Java アプリケーション Frame 画面の中央 jar マニフェスト バッチ bat Linux シェルスクリプト エンコード -encoding sh chmod

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ