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()部の書き方は決まりきっているので、特に悩まなくてもよい)
ありました、frame.setTitle("アプレットフレーム"); 気づきませんでした。(^^ゞ
・ブラウザはmain()を呼ばない
・アプリケーションとして実行した場合、 はじめに、 main ()が呼ばれる
・main()でWebブラウザがやっていることをマネる
しっかり覚えておきます。
順を追った詳しいご説明により大変勉強になりました。
No.4
- 回答日時:
No.3のkacchannです。
間違えた。
あれか。
「アプレットからアプリケーションへソースコードを変更する方法」
を聞いているのか。
(※No.3で僕がかいたことは、ソースコード変更ではない)
…その機能は、おそらくないと思う。
なんでないかというと、「そうする必要が特にないから」という気がする。
下でも書いたように、
ソースコードは変更しなくても、あらかじめmain()部分にしかるべきコードを書いておくだけで、
(1つのソースコードで)アプレットとしてもアプリケーションとしても動かすようにできるのだ。
(※つねに、ではないが)
そのこと・その原理をまず学んでくだされ。
JBuilderがはじめに自動的に吐き出すソースコード見てもいいし。
詳細なご説明をありがとうございます。
No3のご回答で示していただいた手順を行ってみたところ、プロジェクトのタイプの変更前は「my.Applet1」というタイトルのウインドウが立ち上がっていましたが、変更後は「アプレットフレーム」というタイトルに変わりました。
ボタンなどの配置は同じでした。
ざっと見たところ、No4で仰るようにソースコードは変更されておりませんでした。
これは「アプレットとしてもアプリケーションとしても実行出来るソース」を変更前はアプレットとして、変更後はアプリケーションとして実行したということなのでしょうか?
また、「スタンドアロンで実行可」にチェックした場合、しない場合と比べてMain メソッド
public static void main(String[] args)
・・・・
が余分に加わっていました。ここでFrameを扱っているのですね。
参考URLの、アプリケーションとして起動したときの制約の説明、頭の隅に置いておきたいと思います。
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/ …
No.1
- 回答日時:
たとえツールを使ってるとしても、Javaを知らない人にやらせるのはどうかと思います。
。。私はJBuilderを使っていませんし、質問の正確な無理ですけどJButtonとかSwingを使用しているという事はJAppletを継承したクラスだと推測します。
それならば、クラス宣言部の「extends JApplet」の部分をJFrameなり(目的によってどれを継承するのかは変わってくるでしょう)何なりに変更した上で。。。
public クラス名() {
init();
}
というコンストラクタを追加するだけで構わないのではないでしょうかね。
もしも、継承クラスがJAppletではなくAppletだとしたら、JFrame等ではなく、AWTのFrameなりに変更すれば良いとは思いますが、AWTとSwingの混合は避けるべき事ですので、そもそもの設計自体に問題があったと理解して下さい。
実のところ私はソースをほとんど読めないのですが、少し読んでみたところ継承しているクラスはAppletクラスでした。
いずれにしても、(J)Frameというウインドウを扱うクラスを継承する方法があるのですね。参考になりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- 宇宙科学・天文学・天気 星座や太陽などから、自分のいる経度・緯度を知る方法(南半球) 2 2023/01/18 23:54
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- 薬剤師・登録販売者・MR 変更調剤について 1 2022/05/22 11:50
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- CPU・メモリ・マザーボード ゲーミングPCのスペック、組み合わせについて PC初心者なので拙い文など箇条書きなどで理解しづらいか 5 2022/04/25 15:35
- 日本語 当てはまる文言を教えて下さい。 5 2022/10/07 16:15
- Java Java 南京錠 2 2023/02/04 11:46
- USBメモリー・SDカード・フラッシュメモリー プリンタのドライバーをUSB Flash Diskに保存したい。 4 2023/05/23 23:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++からC#へ
-
IISワーカープロセスが原因でCP...
-
vba クリップボードクリアにつ...
-
C#のメモリマップドファイルに...
-
プラグインとパッチの違いは?
-
予約システムの開発ツール
-
unzip32.dllの利用について(64b...
-
JavaとAndroidアプリ(Java)違...
-
サーブレットで電卓をつくる
-
JAVA基礎の課題で自動販売機
-
gitでバージョン指定してダウン...
-
Java新人研修の課題についてア...
-
PowerBuilderの知識が必要です。
-
FCDUtil
-
Pythonを勉強する道のり
-
Selenium/VBA/Chrome エラーで...
-
JavaMailを使う前のTomcatの設定
-
javacとjavaのバージョン違い
-
コマンドボタンの文字が消える!
-
sourceforge.jpのソースコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
AccessとVBの違いについて
-
C#のメモリマップドファイルに...
-
appleスクリプトでアプリケーシ...
-
作ったアプレットを自動でアプ...
-
[VB.2005]クライアントからWEB...
-
帳票出力について
-
JavaでMDB
-
java起動時の日本語引数文字化...
-
C++からC#へ
-
VBのWPFとはなんでしょうか?
-
JavaアプレットはWebブラウザ上...
-
32ビットのアプリで、64ビットO...
-
ASP(VB).NETでの背景色変更
-
C#のWindowsフォームアプリケー...
-
Javaの種類ってどんだけあるの?
-
java3dが動かない
おすすめ情報