• ベストアンサー

作ったアプレットを自動でアプリケーションにする方法

Jビルダーを使えば、(イベント処理の記述などを除いた)JボタンやJラベルなどパーツの配置だけは、コードを読めなくてもUIデザイナにて出来ますよね。 では、そのようにUI行ったパーツの配置を変えずに、アプレットからアプリケーションへとソースを自動で変更する機能はJビルダーにはあるのでしょうか。 条件によって可否が分かれるかも知れませんが、その場合は条件も含めて「こういう場合なら出来る」ということを教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • kacchann
  • ベストアンサー率58% (347/594)
回答No.5

>プロジェクトのタイプの変更前は「my.Applet1」というタイトルのウインドウ これはJBuilderに付属している「AppletTestbed」という名前のアプレットビューワ(閲覧ソフト)のウインドウだね。(※このようにアプレット単体だけで動かすことはできない) このタイトルは、アプレットビューワが勝手につけている。 (※プログラマが自由に変更することができるわけではない) >変更後は「アプレットフレーム」というタイトルに こっちのウインドウは、正真正銘の、「今作ったJavaアプリケーションの」ウインドウ。 JBilderが吐き出したmain()部で frame.setTitle("アプレットフレーム"); という記述行があると思うんだけど、 ここの文字列を変えれば、好きなタイトルにできる。 >これは「アプレットとしてもアプリケーションとしても実行出来るソース」を変更前はアプレットとして、変更後はアプリケーションとして実行 >Main メソッド public static void main(String[] args)   ・・・・ が余分に加わっていました。ここでFrameを扱っている そうそう。 アプレットとして実行した場合は、はじめに、 Webブラウザ(またはアプレットビューワ)が、Appletクラス(を拡張した独自のAppletクラス)のインスタンスを作成し、 次にそのインスタンスのinit()、start()を順に呼び出すのだ。 main()は呼ばれない(※これ重要)。 これに対し、アプリケーションとして実行した場合、 はじめに、main()が呼ばれるだけ。 ----------------------------------------------------- ということは、「既に作ってあるアプレットのソースコードを、どう変えればアプリケーションにすることができるのか」というと、 つまりWebブラウザがやっていることをマネすればよく、 それには、 (1)main()メソッドを記述する (2)main()メソッド内部で、次の処理を自前で書く。  ()フレームを作成する(※たんなる土台)  ()appletクラス(または独自に拡張したappletクラス)のインスタンスを生成  ()フレームにアプレットをはりつける  ()フレームの大きさを設定する  ()appletインスタンスのinit()を呼ぶ  ()appletインスタンスのstart()を呼ぶ  ()フレームを可視化する  ※順番はこのとおりでなくともよい   ----------------------------------------------------- ここでもうひとつ重要なのは、 逆に、このコードをアプレットとして実行させた場合でも、 素直にアプレットとして動く、という点。 ブラウザはmain()を呼ばないので、何ら問題はないのだ。 つまり、アプレットとして起動させようとアプリケーションとして起動させようと、 そのたびにmain()部を削除したり再び書き加えたりする必要はないのだ。 ------------------------------------------------------ この原理を知っていれば、 たとえ、JBulderのアプレットウィザードで、(「スタンドアロンで実行可」にチェックし忘れて、)main()部のコードを書き出させるのを忘れたとしても、あとから自分で上記のようなmain()部の記述を加えればよい。 (※main()部の書き方は決まりきっているので、特に悩まなくてもよい)

tyouji
質問者

お礼

ありました、frame.setTitle("アプレットフレーム"); 気づきませんでした。(^^ゞ ・ブラウザはmain()を呼ばない ・アプリケーションとして実行した場合、 はじめに、 main ()が呼ばれる ・main()でWebブラウザがやっていることをマネる しっかり覚えておきます。 順を追った詳しいご説明により大変勉強になりました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.4

No.3のkacchannです。 間違えた。 あれか。 「アプレットからアプリケーションへソースコードを変更する方法」 を聞いているのか。 (※No.3で僕がかいたことは、ソースコード変更ではない) …その機能は、おそらくないと思う。 なんでないかというと、「そうする必要が特にないから」という気がする。 下でも書いたように、 ソースコードは変更しなくても、あらかじめmain()部分にしかるべきコードを書いておくだけで、 (1つのソースコードで)アプレットとしてもアプリケーションとしても動かすようにできるのだ。 (※つねに、ではないが) そのこと・その原理をまず学んでくだされ。 JBuilderがはじめに自動的に吐き出すソースコード見てもいいし。

tyouji
質問者

お礼

詳細なご説明をありがとうございます。 No3のご回答で示していただいた手順を行ってみたところ、プロジェクトのタイプの変更前は「my.Applet1」というタイトルのウインドウが立ち上がっていましたが、変更後は「アプレットフレーム」というタイトルに変わりました。 ボタンなどの配置は同じでした。 ざっと見たところ、No4で仰るようにソースコードは変更されておりませんでした。 これは「アプレットとしてもアプリケーションとしても実行出来るソース」を変更前はアプレットとして、変更後はアプリケーションとして実行したということなのでしょうか? また、「スタンドアロンで実行可」にチェックした場合、しない場合と比べてMain メソッド public static void main(String[] args)   ・・・・ が余分に加わっていました。ここでFrameを扱っているのですね。 参考URLの、アプリケーションとして起動したときの制約の説明、頭の隅に置いておきたいと思います。

すると、全ての回答が全文表示されます。
  • kacchann
  • ベストアンサー率58% (347/594)
回答No.3

あれかな? JBuilderではじめにアプレットのプロジェクト作って、 デザイナでチョロッとボタンとかラベルとか作成して配置して、 で、うまくいった。 じゃあ次は(その作成し配置したたボタンやラベルをそのまま使って)アプリケーションにしたい。 こういうことかな? ---------- う~ん、JBuilder9を見てみたんだけど、「特に単純な方法は用意してない」んじゃないかなー。 ↓どうも、やっかい? ----------------------- (以下はJBuilder9での話) 「ファイル」メニュ->「新規」項目 ->「オブジェクトギャラリ」ダイアログ ->「Web」タグ->「アプレット」アイコンを選択。 これで「アプレットウィザード」が開くよねえ。 アプレットウィザードの最初のページ(「アプレットの詳細」設定)にある、 下のほうのチェックボックス ・「スタンドアロンで実行可」 ・「標準メソッドの生成」 にチェックを入れる。(これ重要) まず、上記のようにしてからアプレット作成に入ろう。 (※余談だが、「スタンドアロンで実行可」にチェック入れた時とそうでないときとのソースコードを見比べてみよ。アプリケーションとアプレットの違いはmain()関数の記述があるかないか、だけ) --------------------------- (で、デザイナでボタンやらラベルやらを好きなように配置して) アプレット実行。うまくいった。 つぎに、これをアプリケーションに変更したい。 そのときは、 「プロジェクト」メニュー -> 「プロジェクトのプロパティ」項目 ->「プロジェクトのプロパティ」ダイアログ ->「実行」タブ ->(右にある4つのボタンのうちの)「編集」ボタン ->「実行時プロパティ」ダイアログ ->「実行」タブの「メインクラス(M):」と書かれたラベルの右のテキストフィールドを見る。 そこに書かれている文字列を覚えておく。 (今は仮に"my.Applet1"と書かれていたとする) ->「OK」ボタン ->再び「プロジェクトのプロパティ」ダイアログ ->(右にある4つのボタンのうちの)「削除」ボタン ->(右にある4つのボタンのうちの)「新規」ボタン ->「実行」タブの「タイプ(T):」と書かれたラベルの右のメニューの中から「アプリケーション」を選択 ->「メインクラス(M):」と書かれたラベルの最右に「…」ボタンがあるのでそれを押す ->「プロジェクトのメインクラスの選択」ダイアログ ->「参照」タブの「クラス名(C):」と書かれたラベルの右のテキストフィールドに、 さっき記憶しておいた文字列(※今回は"my.Applet1")を入力。 ->「OK」ボタン ->「OK」ボタン ->「OK」ボタン ----------------- ※ようはプロジェクトの「タイプ」を変えただけです。 <余談>今回、JBuilder9をダウンロードしてみました。 ライセンスキー(だかファイルだか)を入手するまでの手続きがちょっとメンドクサかった。 デザイナツールって、とっても利口なんですね。ちょっと感動。 ------------------------- ↓必須。 「アプレットをアプリケーションに変換する」と考えるのではなく、 「フレームにアプレットを貼る」。 http://www.sol.dti.ne.jp/~yoshinor/japplication/japp1002.html

すると、全ての回答が全文表示されます。
  • mamakari
  • ベストアンサー率34% (20/58)
回答No.2

JBuilder8SE使ってますが、そんな機能はないと思います。

tyouji
質問者

お礼

ございませんか。ご回答ありがとうございます、参考になりました。

すると、全ての回答が全文表示されます。
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.1

たとえツールを使ってるとしても、Javaを知らない人にやらせるのはどうかと思います。。。 私はJBuilderを使っていませんし、質問の正確な無理ですけどJButtonとかSwingを使用しているという事はJAppletを継承したクラスだと推測します。 それならば、クラス宣言部の「extends JApplet」の部分をJFrameなり(目的によってどれを継承するのかは変わってくるでしょう)何なりに変更した上で。。。 public クラス名() {   init(); } というコンストラクタを追加するだけで構わないのではないでしょうかね。 もしも、継承クラスがJAppletではなくAppletだとしたら、JFrame等ではなく、AWTのFrameなりに変更すれば良いとは思いますが、AWTとSwingの混合は避けるべき事ですので、そもそもの設計自体に問題があったと理解して下さい。

tyouji
質問者

お礼

実のところ私はソースをほとんど読めないのですが、少し読んでみたところ継承しているクラスはAppletクラスでした。 いずれにしても、(J)Frameというウインドウを扱うクラスを継承する方法があるのですね。参考になりました。ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A