- PR -

アプレット(JAPPLET)で他クラスから直接描画について

1
投稿者投稿内容
会議室デビュー日: 2004/06/22
投稿数: 5
投稿日時: 2004-06-22 11:51
はじめまして、よろしくお願いします。

さて、今回質問させていただきたいのは、JAppletで作成されたアプレットから他クラス(他ファイル)を作成し、そのクラスからアプレットの領域にボタン等のコンポーネントを作成したいのです。

既知問題かもしれませんが、探しきれませんでした。ここを参照せよ!でも結構ですのでよろしくお願いします。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-22 12:37
別クラスを作成するとき、JAppletの参照を渡しておけばよいのでは。

たとえば、
コード:
public Init() {
    new Initializer(this);
}


ってな感じで。
会議室デビュー日: 2004/06/22
投稿数: 5
投稿日時: 2004-06-22 13:06
返信感謝します。

当方、JAVAは初めて2週間というとんでもない初心者なのです。一応は書籍、ホームページ等を参照はしているのですが、悪戦苦闘の日々です。Cはある程度の知識はあるつもりなので(あくまでもつもりです…)仰っていることもニュアンスとしては分かるのですが。

現在、別クラスを作成するときに
 HogeStart hogeStart = new HogeStart(this);
と記述しています。

で呼ばれる側は
 public class HogeStart extends HogeMain { //HogeMainは親
としているのですが…。


HogeMainクラスでは getContentPane() 後に JPanel を作成し、そこに背景画像を表示しています。やりたいことはこの JPanel の上にボタン、ラベルを配置したいのです。ただ、配置するのは別クラスで、ということなのです。

…配置する方法ってどうすればいいのでしょうか??基本的なことが曖昧になってきました…
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-06-22 14:12
まずは、以下を一通り読んでもらって、
http://www.atmarkit.co.jp/fjava/index/index_javaent.html

#@ITではサーバーサイドがメインで、クライアント側の入門記事がないのね。

引用:
で呼ばれる側は
 public class HogeStart extends HogeMain { //HogeMainは親としているのですが…。


継承しちゃだめです。意味がありません。
変数でもって、それでアクセスしてください。

たぶん、やりたいことは何となくわかるけど、コードが思いつかないってところでしょうか?
でしたら、BorlandのJBuilder Xなどの統合環境で、画面を部品のペタリで制作可能な物を使って、
そのコードを見るという方法もありますよ。特に、画面周りでは有用です。
会議室デビュー日: 2004/06/22
投稿数: 5
投稿日時: 2004-06-22 17:06
有益な情報ありがとうございます。

引用:

変数でもって、それでアクセスしてください。


この変数でもって、とは如何に?Appletを引き渡すということでしょうか??

引用:

たぶん、やりたいことは何となくわかるけど、コードが思いつかないってところでしょうか?
でしたら、BorlandのJBuilder Xなどの統合環境で、画面を部品のペタリで制作可能な物を使って、
そのコードを見るという方法もありますよ。特に、画面周りでは有用です。


そうです、やりたいことは何気にわかるんだけど、それに対してのアプローチ方法が分からないのです。まぁこの何気ってところも漠然としてるのですが。

で、BorlandのJBuilder トライアル版を早速ダウンロードして試してみたのですが、やり方がまずいのか何なのか、さっぱしなのです。(ソースを記載したほうがよろしいのでしょうか?)

よろしければ、
・その別クラスの呼び出し方法
・別クラスにて呼び出し元アプレットへのボタン等の設置方法
を教えていただけないでしょうか?
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-06-22 17:51
引用:
現在、別クラスを作成するときに
 HogeStart hogeStart = new HogeStart(this);
と記述しています。


のthisをHogeStartクラスでどうしてますか?
thisをクラス変数で持っていれば、その変数を介して、thisのクラスの
パブリックメンバにアクセスできます。

配置方法は以下のページを見てください
http://www.techscore.com/tech/Java/UI/4.html

引用:
で、BorlandのJBuilder トライアル版を早速ダウンロードして試してみたのですが、やり方がまずいのか何なのか、さっぱしなのです。(ソースを記載したほうがよろしいのでしょうか?)


どう、さっぱりなのか説明していただけないと、何とも言えませんが。
とりあえず
いきなりアプレットを作るのではなく、Javaアプリケーションを作った方がいいでしょう。
アプレットは、ブラウザとのやりとりなど、余分な物が付くので。
そこで、まずは何もないもの作り、保存。その後、パネルを追加して、
何もないときと何が違うかを確認するといいでしょう。
ソースの変更履歴で、差分が見られますので確認するとよいでしょう。
会議室デビュー日: 2004/06/22
投稿数: 5
投稿日時: 2004-06-22 18:06
引用:

のthisをHogeStartクラスでどうしてますか?
thisをクラス変数で持っていれば、その変数を介して、thisのクラスの
パブリックメンバにアクセスできます。


コンストラクタ時にクラス内で宣言したApplet型の変数にセットしています。
この変数で何かをするんだろうなぁ〜と漠然と思っていたのですが。

現在、強制的に HogeMain 内の JPanel を static public で宣言し、HogeStart で
HogeMain.hogePanel.add(hogeLbl, null);
applet.repaint();
としたところ、表示はできたのですが、如何せん static public をしてしまっているところが、悲しいところです。

#急がば回れ、アプリケーションでやってみます!
会議室デビュー日: 2004/06/22
投稿数: 5
投稿日時: 2004-06-23 13:21
やっとできました。
振り返ってみれば、至極単純でした。
Cのポインタの概念でずっと考えてしまっていたため、JAVAの特性である参照渡しのことを理解していませんでした。

かずくん様、soluna様、お手数をおかけしました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)