JAVA GUI プログラミング(基本)
java ide の定番って?・・・特に無いみたいです。
※訂正:Applet - Swing の順みたい・・・です。
軽く比較的単純なウィンドウ構成なら
ちょっと複雑な画面構成を伴うアプリケーションを作るなら Swing って感じ。
各部品の配置は数値指定になる。(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 ProjectEclipse 3.1.1 へのインストールは比較的簡単に出来ました。
試行錯誤の末 galileo ver3.5.2 への Visual Editor インストール出来ました。
▲上へ [ 編集 ]
関連書籍
swing を 基本に JAVA のインターフェースを設定。見た目の違いは Look & Feel の変更で対処。※web 用途ならアプレットでしょう。(自分で探して・・・)
関連ページ
- 開発環境関連
- JAVA 関連
- 音源変換メモ
▲上へ [ 編集 ]
2011年03月26日(土) 12:36:00 Modified by cafeboy1