• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java アルゴリズム web上のソースコードで)

Javaアルゴリズム web上のソースコードでの質問

このQ&Aのポイント
  • Javaアルゴリズムについての質問とエラーの修正について
  • Javaアルゴリズムのソースコードの質問と修正方法
  • Javaアルゴリズムのソースコードの質問とエラー解決方法

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

  • ベストアンサー
  • tyatsumi
  • ベストアンサー率58% (30/51)
回答No.1

ひまなので見てみます。 (1) repaint() の前にクラスやオブジェクトが指定されてないので、 この行があるメソッド set_random_costs() が属するクラス Main の repaint() が呼ばれています。 Main は Applet を継承しているので、Applet の repaint() が呼ばれるわけです。 このソースコードの中に定義は書いてありません。 インスタンスで言うと main() の中で生成されている main というオブジェクトの repaint() です。 (2) Mainはアプレットなので <html> <body> <applet code="Main.class" width="400" height="400"></applet> </body> </html> という内容のファイルを main.html という名前で保存して appletviewer main.html とすればそのまま実行できました。 java Main で実行したい場合は、エラーの出る139行の直前の1行 Image image = createImage(300, 130); を Image image = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(300, 130); に変えたら動きました。 もっといい方法もあるかもしれませんが。

noname#173931
質問者

お礼

さっそく回答していただきありがとうございます。 ところで、 (2)については、ドキュメントをみながら、教えていただいた コードを試させていただきますが、 (1)について、 paint() を オーバーライドしていない Main クラスの repaint() というのはどういう動作をするのでしょうか。 もしよければ教えていただけないでしょうか? とにかく、貴重な時間を割いての回答、ありがとうございました。

その他の回答 (1)

  • tyatsumi
  • ベストアンサー率58% (30/51)
回答No.2

> paint() を オーバーライドしていない Main クラスの > repaint() というのはどういう動作をするのでしょうか。 するどいですね。この行なくても動くようです。 実際に作画をしているのは panel (ConsolePanel) なので、 panel.repaint() さえ実行していれば十分です。 これはあちこちで呼ばれてますね。

noname#173931
質問者

お礼

わざわざすぐにレスポンスを下さりありがとうございます。 そうですか。なくても動くのですか。 貴重な時間を割いての回答、ありがとうございました。