紙コップ

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

2009-02-18 15:21:56

Javaアプリケーションの雛形その2です。「Javaアプリケーションの雛形1」とほとんど同じで、違うところは、こちらはJFrameを継承しているという点です。仕様は、以下のような感じです。



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

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

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

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



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



/AppliTemplate2

   ├/com

   │ └/aquaplace

   │   ├ SetCenterLocation.java

   │   └ SetCenterLocation.class

   │

   ├ AppliTemplate2.java

   ├ AppliTemplate2.class

   ├ MANIFEST.MF

   ├ AppliTemplate2.bat

   └ AppliTemplate2.sh





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



AppliTemplate2.jar

   ├/com

   │ └/aquaplace

   │   └ SetCenterLocation.class

   │

   ├ AppliTemplate2.class

   └ MANIFEST.MF





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

/**

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

*/



import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import com.aquaplace.*;



public class AppliTemplate2 extends JFrame {

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

  private static int WIDTH = 320;

  private static int HEIGHT = 240;

  public static void main(String[] args) {

    AppliTemplate2 appli = new AppliTemplate2();

  }

  public AppliTemplate2() {

    super();

    

    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    

    setTitle(TITLE);

    setSize(WIDTH, HEIGHT);

    

    //ウィンドウを中央に

    SetCenterLocation.setLocation(this);

    

    validate();

    setVisible(true);

  }

}





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

package com.aquaplace;



import java.awt.*;



public 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: AppliTemplate2

Class-Path: .

Created-By: 1.6.0_10





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

javac -classpath . *.java

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

java -classpath . -jar AppliTemplate2.jar





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

#!/bin/sh

javac -encoding SJIS -classpath . *.java

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

java -classpath . -jar AppliTemplate2.jar





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



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



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



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





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

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

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]