- ベストアンサー
指摘してください!!!
JAVA APPLETの初歩的な質問ですが… クリックするとマウスの座標を表示するプログラムなのですが、以下のプログラムでは正しく実行しないのだそうです。 正しく実行するにはいくつかのコードを削除しなければならないのですが…。 それはどのコードなのでしょうか? プログラムは以下の通りです。 import java.applet.*; import vava.awt.*; public class Test extends Applet{ int iX,iY; public void paint(Graphics g){ int iX,iY; string c = new String(); g.drawString("X座標 = "+c.valueOf(iX)+"Y座標 = "+ c.valueOf(iY),10,20); } public boolean mouseDown(Event e,int x,int Y){ int iX,iY; iX = x; iY = y; repaint(); return true; } } 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
initメソッドがないことかな? public void paint(Graphics g){ の文の前にinitメソッドで使う変数を初期化してください。たとえば public void init(){ Xi=10,Yi=10 } のように・・・。 MOUSEDOWNは推奨されないAPIなので、そのエラーはでつづけますが、実行はできます。 それからINT文がたくさんありますね。 はじめの1個だけでいいです。 それから、大文字と小文字が間違っているところが数箇所・・・ そこを直さないと、もちろんコンパイルエラーです。
その他の回答 (3)
- takaP-
- ベストアンサー率79% (83/105)
>エラーが出ませんか?? import java.applet.*; import java.awt.*; // vava->java public class Test extends Applet{ int iX,iY; public void paint(Graphics g){ //int iX,iY; ->comment out //string c = new String(); -> comment out g.drawString("X座標 = "+iX+"Y座標 = "+iY,10,20); // valueOf() delete } public boolean mouseDown(Event e,int x,int y){ // Y->y //int iX,iY; -> comment out iX = x; iY = y; repaint(); return true; } } 出ないと思いますが。 理由は、#2の冒頭に記述した通りです。
- azicyan
- ベストアンサー率21% (368/1747)
#2のかたへ・・・ コンパイルしてみたんですが、initがないと 「変数が初期化されていない可能性があります」 というエラーが出ませんか??
- takaP-
- ベストアンサー率79% (83/105)
この場合 init() メソッドは無くても問題はありません。 メンバ変数は自動的に初期化されますので、int iX,iY; としただけで初期値(この場合0)が代入されます。 後は#1さんの指摘通りですが、補足しておくと。。。 ・大文字、小文字の間違え、スペルミス vava→java string→String int Y→int y ・無駄なローカル変数 int iX,iY; (×2) とまぁ、この部分を訂正すれば動くには動きます。 他にも無駄な記述があるのが気になります。 g.drawString("X座標 = "+c.valueOf(iX)+"Y座標 = "+ c.valueOf(iY),10,20); String クラスのインスタンス変数 c に対してvalueOf() を呼び出していますが、これはクラスメソッドなので、 String.valueOf(iX) のように呼び出すべきでしょう。 まぁそれ以前に、この場合は別段 valueOf() を使うまで もないことです。単に。。。 g.drawString("X座標 = "+iX+"Y座標 = "+iY,10,20); で済みますから。
補足
有難う御座いました。 こんな初歩的な質問に、細やかな指摘を下さいまして、大変助かりました。
補足
有難う御座いました。 大文字小文字、記述も気をつけないといけないのですね。こんな初歩的な質問にお答えくださいまして有難うございました。