• ベストアンサー

指摘してください!!!

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; } } 宜しくお願いします。

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

  • ベストアンサー
  • azicyan
  • ベストアンサー率21% (368/1747)
回答No.1

initメソッドがないことかな? public void paint(Graphics g){ の文の前にinitメソッドで使う変数を初期化してください。たとえば public void init(){   Xi=10,Yi=10 } のように・・・。 MOUSEDOWNは推奨されないAPIなので、そのエラーはでつづけますが、実行はできます。 それからINT文がたくさんありますね。 はじめの1個だけでいいです。 それから、大文字と小文字が間違っているところが数箇所・・・ そこを直さないと、もちろんコンパイルエラーです。

noname#46603
質問者

補足

有難う御座いました。 大文字小文字、記述も気をつけないといけないのですね。こんな初歩的な質問にお答えくださいまして有難うございました。

その他の回答 (3)

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.4

>エラーが出ませんか?? 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)
回答No.3

#2のかたへ・・・ コンパイルしてみたんですが、initがないと 「変数が初期化されていない可能性があります」 というエラーが出ませんか??

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.2

この場合 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); で済みますから。

noname#46603
質問者

補足

有難う御座いました。 こんな初歩的な質問に、細やかな指摘を下さいまして、大変助かりました。

関連するQ&A