アプリ版:「スタンプのみでお礼する」機能のリリースについて

テトリスのようなものを作りたいと思って参考にしようと、以下のサイトの「11.完成」のところのソースをエディタにコピーして
ttp://himuka.miyazaki-c.ed.jp/db/kyouzai/public/java/teto_kaisetu/fram.htm
コンパイルしようとしたら

teto.java:165: \65373 は不正な文字です。

^
teto.java:196: ';' がありません。
}
^
teto.java:321: \12288 は不正な文字です。
 g.setColor(Color.black);

のように3個のエラーが出ました。
そこで165行目の「}」を消して書き直したりして色々試すと最終的に

teto.java:345: 'class' または 'interface' がありません。
}
^
teto.java:346: 'class' または 'interface' がありません。
^
のように2個のエラーが出てコンパイルできません。
ゲームなどは作ったことがないし、javaの基礎力がまだまだ足りないので原因がわかりません。
どこが原因でエラーが出るのか教えてください。お願いします。

A 回答 (6件)

>Eclipseは使ったことがないのですが、Eclipseを使わないとこの警告を無視して実行することはできないのですか?


Eclipseの中身を知ってるわけではないので、本当かはわからないですが、たぶんEclipseの中身では警告が出ていると思いますよ。ただそれをユーザーに見せないだけです。

つまり、あなたも警告は出ているけど無視して実行することができます。警告は出たけど、無事(?)Tet.classやBlock.classが生成されていませんか?後はappletviewerなりなんなりでアプレットを起動してください。

ちなみに、起動してみましたが、ゲームのやり方はいまいちよくわかりませんでした。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
仰るとおりクラスファイルが作成されてました!
アプレットを起動させることができました。
でも仰るとおりゲームがよくわかりませんでした。あのサイトにのってるのと違いました・・・。2個目のブロックが降りてこない。
なんじゃこりゃ!!

お礼日時:2006/05/19 21:28

これは「エラー」ではありません。

「警告」です。


「エラー」のときは実行が全くできませんが、「警告」レベルだと(ある程度の問題はあるが)実行できます。

これは
http://java.sun.com/j2se/1.4/ja/docs/ja/api/inde …
にあるThreadクラスのstop()メソッドを見てもらえればわかると思いますが、このメソッドが「推奨されていない」ことによる警告です。Javaの古いバージョンでは普通に使えたけど、新しいバージョンになって何らかの問題が見つかったから、本当はなくしたいけど互換性のために残しているといったパターンが多かった気がします。

このレベルの警告を重要視するか、無視するかはあなた次第ですが、下記のHPにEclipseでの対応についてかかれてあるので、参考にしてみてください。

参考URL:http://www008.upp.so-net.ne.jp/kikuta/eclipse/ti …
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほどエラーではなく警告なんですね。
Eclipseは使ったことがないのですが、Eclipseを使わないとこの警告を無視して実行することはできないのですか?

お礼日時:2006/05/19 06:32

今度はどのようなコンパイルエラーが出ましたか?



私の環境ではNo.1さんの内容とNo.2の内容について修正を加えるとコンパイルできたのですが。
    • good
    • 0
この回答へのお礼

何度もありがとうございます!

注: teto.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。


と出たので、-deprecationをつけてコンパイルしようとすると


teto.java:251: 警告: java.lang.Thread の stop() は推奨されません。
th.stop();
^
警告 1 個


と出ました。
自分はたぶん1.4を使ってると思いますけど、これはJavaのバージョンの違いによるエラーなんですか??

お礼日時:2006/05/18 15:24

#1>どうやったら正しくコンパイルできるのでしょうか?


#2様の仰る通りです。
    • good
    • 0
この回答へのお礼

できませんでした!!

お礼日時:2006/05/14 23:54

>teto.java:267: 定数式が必要です。


>case e.VK_DOWN:{a=x;b=y;
caseの後は定数式が必要です。
つまり、caseの後が変数だと、その変数の値によって値がぶつかる

switch(~)
{
case 1:~
case 1:~
}

等するからです。というわけで、caseの後ろをインスタンスからの定数呼び出しではなく、staticなアクセスによる定数呼び出しにします。


それぞれの行を

case KeyEvent.VK_DOWN:{a=x;b=y;
case KeyEvent.VK_LEFT:{a=x;b=y;
case KeyEvent.VK_RIGHT:{a=x;b=y;
case KeyEvent.VK_SPACE:{c++;

に変えてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも仰るとおり書き換えましたがやはりエラーが出てコンパイルできませんでした!

お礼日時:2006/05/14 23:53

165行目の}は、全角文字になっていますので半角文字の}に直す必要があります。


321行目の先頭に全角スペースがあります、半角スペースにする必要があります。
345行目のエラーは、} が整合していないためのものです。
344行目の} が余計です。

この回答への補足

すばやい回答ありがとうございます!!
仰ったとおりに改変してコンパイルしてみると

teto.java:267: 定数式が必要です。
case e.VK_DOWN:{a=x;b=y;
^
teto.java:279: 定数式が必要です。
case e.VK_LEFT:{a=x;b=y;
^
teto.java:289: 定数式が必要です。
case e.VK_RIGHT:{a=x;b=y;
^
teto.java:299: 定数式が必要です。
case e.VK_SPACE:{c++;
^
と出てしまいました;;
どうやったら正しくコンパイルできるのでしょうか??教えてください!!

補足日時:2006/05/14 13:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!