• ベストアンサー

グラフィックスについて

GUIでちょっとわからない事があるので教えてください。 例えば、 Bクラス:サッカーのフィールドを描く。 Cクラス:Bクラスで描いたフィールド上に選手(丸)を配置させる。 Aクラス:BクラスとCクラスを呼び出して実行する。 というプログラムを作るとします。Bクラスの実行まではできるのですが、Bクラスの実行結果のフィールド上に丸を表示させることができません。どのようにすれば表示させることができるのでしょうか、教えてください。ちなみに、BクラスはJFrameで枠を作り、JPanelにGa\raphicsでフィールド(線)を描いています。

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

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

>フィールドは残したまま、選手の位置を変えたいので、 なるほど。そういう場合、 以下のどっちかになると思います。 1)フィールドを残すのをあきらめて、いちいち描画する。 2)ダブルバッファリングの手法をとる。 (1)は無駄だと思うかもしれませんが、 案外そんなに時間はかからないかもしれません。 (2)については、ここで「ダブルバッファリング」 「BufferedImage」をキーワードにして検索してください。

shosin
質問者

お礼

ありがとうございます。早速、調べてやってみたいと思います。後は一人でがんばってみます。

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

プログラムの中に void paintComponent(Graphics g){ (gを使ってフィールドを描く処理) .... } の部分がありますね? だったらそこを、 void paintComponent(Graphics g){ (gを使ってフィールドを描く処理) aClassC.paintPlayer(g);//選手を描画 } クラスCの中で、 paintPlayer(Graphics g){ (gを使って選手を描く処理) } とすればいいかと。 そうでなければ、フィールドも選手も一遍に描画してしまうとか。

shosin
質問者

補足

回答ありがとうございます。 すいません、質問に書くのを忘れていたので補足させてください。後で、フィールドは残したまま、選手の位置を変えたいので、一度にに書くのではなく、フィールドに付け足していく感じにしたいのです。別にクラスを分けてやるのが無理なら1つのクラスでもいいです。よろしくお願いします。

関連するQ&A

専門家に質問してみよう