1

を使用してJPanelに沿って移動する長方形がありrepaint()ます。長方形の位置が JPanel の外側の位置に達すると、それは見えなくなります。JPanelの外で見えるようにするにはどうすればいいですか?

これは私のペイント方法です:

public void paintComponent (Graphics g) {
    g.setColor(Color.red);
    g.fillRect(dist, 0, 10, 10);
    dist++;
}

アップデート:

GridBagLayout を使用して配置した JFrame に複数の JPanel があります。JPanels は、通りのレーンと四角形の車を表します。JPanel の外に四角形を表示する理由は、車に車線を変更させるためです。車の最初の位置を設定するには、JPanel が適しているように思えました。

この問題のより良い解決策はありますか?

4

2 に答える 2

2

あなたは次のように述べています:

repaint() を使用して JPanel に沿って移動する四角形があります。長方形の位置が JPanel の外側の位置に達すると、それは見えなくなります。JPanelの外で見えるようにするにはどうすればいいですか?

JPanel がそれを描画している場合、短い答えは「できません」です。

より長い答えは、JPanel を描画しようとしている場所と、GUI の残りの部分がどのように設定されているかによって異なります。


編集
あなたは今述べています:

GridBagLayout を使用して配置した JFrame に複数の JPanel があります。JPanels は、通りのレーンと四角形の車を表します。JPanel の外に四角形を表示する理由は、車に車線を変更させるためです。車の最初の位置を設定するには、JPanel が適しているように思えました。

あなたがやっているようにコーディングした場合、これらのローカル JPanel に車を描画させるのではなく、おそらく JLayeredPane を使用して、道路とは異なるレイヤーに存在する独自のスプライトにすることになります。この JPanel が不透明でない限り、マップ全体を包含する独自の JPanel に存在する可能性があります。その後、好きなように車を動かすことができます。

于 2013-10-12T14:03:29.440 に答える
2

前に述べたように、それはできませんが、より大きな領域を占有したい場合は、JPanel を大きくするか、親コンポーネントに paintComponent を配置する必要があります。

于 2013-10-12T14:15:50.327 に答える