現在、paintComponent メソッドを変更する JComponent を拡張するコンポーネントを追加することで、Java で四角形、楕円形、および線を描画できます。
public class myComponent extends JComponent
{
public void paintComponent(Graphics g)
{
/* do simple draw stuff */
}
}
クラスに JApplet または JPanel のいずれかを拡張させてから、ペイント メソッドを描画する方法も知っています。
public class myClass extends JPanel
{
public void paint(Graphics g)
{
/* do simple draw stuff */
}
}
しかし、これらの方法はどちらも、パラメーターを渡すことができないという問題があります。マルチフレームのアニメーション化されたスプライトの場合、フレーム番号を決定するために読み取る外部変数を持つことができ、そのフレーム番号に基づいて適切な「スプライト」コンテンツのみを内部的に描画しますが、できるようにしたいと思いますフレーム番号を直接渡します。残念ながら、これがどこから呼び出されたのかわからないだけでなく、入力として必要な Graphics g の場所もわかりません。
描画ルーチンと直接通信して、必要なときにいつでも必要なものだけを描画するように指示する、私が望むものを達成するためのより良い方法があるかもしれませんが、これを達成する方法がわかりません.
そのような方法が可能である場合、それはどのように行われますか? 既存の paint または paintComponent メソッドを使用する方がよい場合、それらに追加情報を渡すにはどうすればよいでしょうか?
どうやら私が質問した内容が明確ではなかったようです。独自の paintComponent または paint メソッドを持つコンポーネントまたはその他のエンティティが必要です。その内部には、渡された frameNumber パラメータ、または明らかにより可能性が高いように、frameNumber などのクラス プロパティに基づいています。アクセスすると、メソッドはスプライトのどのフレームを描画するかを決定します。
ただし、重要なことは、フレーム番号が変更されたときに、paint または paintComponent を再呼び出ししてスプライトを再描画できるようにしたいということです。私の大きな混乱は、メソッドを再呼び出しする方法がわからないことにあります。これは、私の理解では、フレームのサイズが変更されたとき、または再描画されたときにのみ呼び出されます。