最近更新したページ
2013-10-20
2013-09-29
2013-09-23
2012-01-07
2011-11-09
2011-10-23
2011-10-09
2011-10-01
2011-09-29
2011-09-03
2011-08-07
2011-08-02
2011-07-29
2011-07-10
2011-05-05
2011-05-04
2011-04-24
2011-04-13
2011-04-05
2011-03-26
2011-02-18
2011-02-15
2010-12-26
2010-12-07
2010-12-05
2010-11-23
2010-09-28
2010-09-23
2010-08-26
2010-08-22
2010-07-16
2010-01-17
2010-01-11
2009-10-04
2009-08-21
2009-08-13
2009-06-18
2009-06-01
2009-04-29
2009-02-16
2009-02-11
2009-02-03
2008-07-22
2008-07-21
2008-07-15
2008-07-14
2008-07-13
2008-07-12
2008-07-08
2008-07-05
2008-06-28
2008-06-17
2008-06-05
2008-06-02
2008-06-01
2008-05-29
2008-05-26
2008-05-21
2008-05-19
2008-05-18
2007-10-31
2007-10-27
2007-09-28
2007-09-23
2007-09-17
2007-09-16
2007-09-14
2007-09-11
2007-06-18
2007-04-15
2006-12-21
2006-11-30
2006-11-22
2006-08-17
2006-03-29
2006-03-28
2006-03-27

JAVA GUI プログラミング(基本)


 java ide の定番って?・・・特に無いみたいです。
 ※訂正:Applet - Swing の順みたい・・・です。
 軽く比較的単純なウィンドウ構成なら AWT Applet が良さそう。
 ちょっと複雑な画面構成を伴うアプリケーションを作るなら Swing って感じ。
 アプレットは、web アプリ用(?)のように使い分けるのが良いのでしょう(かね?)

 各部品の配置は数値指定になる。(NetBeeans を除く)
 いまさら方眼紙とかいやなので、Dia ダイヤクラムなども使えそうだが、QCad が寸法線が引けて良さげな感じ。
 (QCad は日本語による最新情報が薄い(ほぼ皆無)です。多分、時間食われます。)

▲上へ [ 編集 ]

JAVA GUI プログラミング

AWT (Abstract Windowing Tools)

  • Java で GUIアプリを作成するためのクラスライブラリ。
  • プラットフォームに似たウィンドウ構成。
  • Swing より軽い。

AWT による Frame 表示の基本形

※注意:これ実行すると閉じれないウインドウが表示されます。
import java.awt.*;                   // java.awt.* を import

public class MyFrame extends Frame { // Frame Class の SubClass 実装
   public static void main(String [] args) {
      new MyFrame();
   }
   MyFrame() {              // Frame 表示
      super("MyFrame");     // 親コンストラクタ呼出とタイトル名
      setTitle("JAVA AWT"); // タイトル名の再設定
      setSize(640,480);     // Frame Size 指定
      show();               // 表示
   }
}

※これでは window が閉じれない・・ eclipse から起動した場合、eclipse を修了。
※「閉じる」ボタンで修了と非表示(常駐とか)汎用性を持たせるためか?

▲上へ [ 編集 ]

AWT による Frame 表示(閉じるボタン対応)

import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame {                     // (1)

   public static void main(String args[]) {
      MyFrame app = new MyFrame("AWT MyFrame Window");   // (2)
      app.addWindowListener(                            // (4)
            new java.awt.event.WindowAdapter() {
               public void windowClosing(WindowEvent e) {
                  System.exit(0);
               // setVisible(false); // 常駐で非表示にするなら・・・
               }
            }
      );
      app.setTitle("main::JAVA AWT");        // タイトル再設定など
      app.setSize(640,480);
      app.show();
   }

   public MyFrame(String title) {                        // (3)
      super(title);
      /*
      --- Window の記述を纏めるなら、ここに置いても良い -------
      this.addWindowListener(                            // (4)
            new java.awt.event.WindowAdapter() {
               public void windowClosing(WindowEvent e) {
                  System.exit(0);
               // setVisible(false);
               }
            }
      );
      setTitle("MyFrame::JAVA AWT");
      setSize(640,480);
      show();
      ------------------------------------------------------
      */
   }

   public void paint(Graphics g) {
      g.drawString("(1)(2)(3)の 名称相違はエラーが出る?注意", 30, 50);
      g.drawString("(4)は閉じるボタン使用時の定形文?・・・", 30, 65);
   }
}

※ざっくり定形的に覚えるしかなさそう。(このへん結構面倒くさい)
※ざっくり、NetBeanse IDE 使うとこんなの手でコーディングしないで済む。

▲上へ [ 編集 ]

Java Swing

  • AWT よりも新しい GUIコンポーネント。(AWT+α)
  • プラットフォームに関係なく見栄えが変わらない。(設定次第)
    • Look & Feel でほぼ吸収可能
  • AWT より重いがより強力に画面構成を組める。

import java.awt.*;			// これも必要
import javax.swing.*;			// javax.swing.* を import

class MyJFrame extends JFrame {	// JFrame の SubClass 実装
   MyJFrame() {
      getContentPane().setLayout(new FlowLayout());
      setTitle("JAVA SWING");
      setSize(640,480);
      setVisible(true);	// これが無いと表示されない。
   }
   public static void main(String [] args) {
      new MyJFrame();
   }
}

※これだけでも window を閉じるボタンが反応するようです。
※・・・が、window 表示に違和感を覚えるでしょう。

▲上へ [ 編集 ]

Java Applet

とりあえず割愛
※HTML文へフラッシュ見たいに組み込み実行する感じ・・・一般的にブラウザ上で実行する。

  • AppletViewer で表示する
    • Sample.java ファイルに表示用 HTML を埋め込んだ(コメントアウト)場合
    • コンパイル実行 Sample.Class を作成
    • appletviewer /home/<<user name>>/desktop/Sample.java
  • 表示用 HTML を作成した場合
    • コンパイル Sample.Class
    • 対となる Sample.html をダブルクリックしブラウザで起動。

HTML + .class(ブラウザで実行する)

(1ー1)Sample.html(最低限必要(と思う)な html 記述)
<html>
<body>
<applet code="Sample.class" width="250" height="150">
アプレットを表示出来ない場合の文言(これは無くても OK)
</applet>
</body>
</html>

(1ー2)Sample.java(こんな感じで・・・)
import java.awt.*;
import java.applet.*;

public class Sample extends Applet{
   public void init() { 〜 }             // 初期化処理
   public void start() { 〜 }            // 処理開始
   public void paint(Graphics g) { 〜 }  // 描画処理
   public void stop() { 〜 }             // 一時停止
   public void destroy() { 〜 }          // 終了処理
}
※コンパイルし Sample.class を作成し、Sample.html をブラウザで開くと実行される。
※実行は init(), start(), paint(), ・・・と順次行われる模様だが・・・。main() は記述しない。
※任意にメソッドを作成しても良いと思います。・・・が上記 init(), start() など1個は欲しい。(たぶん)

(2)コンパイル:Sample.java をコンパイルし Sample.class を作成
javac Sample.java

(3)実行:Sample.html ダブルクリックするなどして実行。
appletviewer Sample.html
アプレットビューアでの実行も可能。

簡易実行(html ファイル未使用)

(1)Sample.java(html と javaソースを一緒に記述)
/* <applet code="Sample.class" width="250" height="150"></applet> */
import 〜なんちゃら(以下省略)〜
〜

(2)コンパイル:Sample.java をコンパイルし Sample.class を作成

(3)実行:端末から Sample.java を指定し実行。
appletviewer Sample.java
※要は <applet 〜></applet> が平文で指定出来れば何でもよいみたいです。
※<applet>文は多くのオプションあり。(委細省略)
※html ファイルが別途不要なので動作チェックに便利です。


▲上へ [ 編集 ]

その他


Qt4

 Qt(キュート、又はキューティ) は、クロス環境(Win, Mac, Linux 他モバイル環境など)で使える GUI 開発環境らしく 主に C++ 用のようですが、Java, Python, Ruby などからも利用することも可能らしいです。(詳細不明)

 特に Linux では、KDE, Opera, Google などの環境や一部のアプリで使われ、また GUI 製作も比較的容易な感じです・・・が、その後ソースに include とか import とかするのは手動になるらしいので、手放しで簡単とは言い難い・・・

 JAVA の UI 製作環境として使えそうな感じもするため一応メモ。

java bindings / Qt Jambi(商用みたい)

その他メモ

Visual Editor Project
Eclipse 3.1.1 へのインストールは比較的簡単に出来ました。
試行錯誤の末 galileo ver3.5.2 への Visual Editor インストール出来ました。


▲上へ [ 編集 ]

関連書籍

swing を 基本に JAVA のインターフェースを設定。見た目の違いは Look & Feel の変更で対処。



※web 用途ならアプレットでしょう。(自分で探して・・・)


関連ページ




▲上へ [ 編集 ]
2011年03月26日(土) 12:36:00 Modified by cafeboy1




スマートフォン版で見る