0

私のプログラムの構造を手伝ってくれないかと思っていました。私はJavaでゲームを作っていますが、2つのクラスがあります。1クラスは、paintメソッドを使用してJFrameを拡張するグラフィッククラスです。

グラフィッククラスpaint()は、JFrameをパラメータとして使用するさまざまなオブジェクトを呼び出します。クラス内には、paintメソッドと相互作用するMouseListenerとMouseMotionListenerを実装するサブクラスがあります。

キャンバスクラス私は、ボタンやパネルなどを備えたより大きなキャンバスクラスに最初のクラスを埋め込むことを計画していたので、基本的に、より大きなプログラム内のより小さな(サブプログラム)としてクラスを使用します。これは可能ですか/私はこれを正しい方法で行っていますか?キャンバスクラス内でグラフィッククラスを呼び出そうとすると、グラフィックが表示されません。

    public Canvas(){
    graphic = new Graphic(name);

}
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Canvas canvas = new Canvas();
            canvas.setDefaultCloseOperation(EXIT_ON_CLOSE);
            canvas.setSize(1500, 1500);
    canvas.setVisible(true);
}

}どんな助け/ガイダンスもいただければ幸いです。グラフィックプログラミングを正しく考えているかどうかを主に知りたいだけです。

4

1 に答える 1

1

Canvas「ウィンドウ」ではありません。画面に何かを表示するには、コンポーネントをウィンドウデリゲートに追加する必要があります。

paint個人的には、トップレベルのコンテナーのメソッドをオーバーライドすることは避けたいと思います。これの主な理由は、トップレベルのコンテナがダブルバッファリングされておらず、アプリケーションの移植性が低くなることです。コンポーネントを他のコンポーネントに追加する方がはるかに簡単です。フレームはかなり最終的なものです。

がダブルバッファリングされているJPanelという理由だけで、Canvasでも使用します。JPanel

于 2013-03-11T07:23:14.127 に答える