1

** プロセス フローに関するフィードバックもお気軽にお寄せください。私がやっていることを完了するためのより良い方法がおそらくありますが、私はそれを認識していません.

JPanel を拡張する Game クラスがあります。このpaintComponent()メソッドでは、ゲーム (メニュー) の状態に基づいて異なるクラスをレンダリングします。ようこそ画面だけがウィンドウ全体に描画されます。640x480 ウィンドウで (0, 0, 1000, 1000) の座標を手動で割り当てても、他のウィンドウはウィンドウを埋めません。

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (state == State.WELCOME) {

        welcome.render(g);

    } else if (state == State.SELECTPOSITION) {

        selectPosition.render(g);

    } else if (state == State.SELECTSCENARIO) {

        selectScenario.render(g);
...

行の下に、同じロジックを持つ状態がさらにリストされselectScenario()ます。

最初の 2 つのrender()方法を以下に示します。

welcome.render(g)

public void render(Graphics g) {
    g.setColor(Color.red);
    g.fillRect(0, 0, 640, 480);
    g.setColor(Color.white);
    g.drawString("Welcome", 50, 150);
}


selectPosition.render(g)

public void render(Graphics g) {
    g.setColor(Color.blue);
    g.fillRect(0, 0, 1000, 1000);
}

SelectPosition 画面では、画面下部に高さ約 50px の赤い線が表示されます。

さらに情報が必要な場合はお知らせください。関連する行のみを共有しようとしました。

どんな助けでも大歓迎です。

4

1 に答える 1

1

私たちはあなたのコード、ロジック、プログラムの構造の多くに慣れていないため、sscceを作成して投稿して、あなたが経験していることを実際に体験できるようにしたいと思うかもしれません。しかし、あなたが本当にやりたいことは、CardLayout を使用して達成できるような状態に基づいてビューを交換することであるかのように思えます。

于 2013-04-03T23:01:37.597 に答える