私は学校JavaプロジェクトのConnect Fourゲームに取り組んでいます。私はJLayeredPaneの「方法」を持っていますが、期待どおりに動作していますが、特定のコンセプトの背後にある「理由」をあまり理解していません。ここでJLayeredPane:深さと位置の機能的な違いは何ですか?
は私の理解です:
のJLayeredPaneを使用すると、各コンポーネントの深さと位置を指定することができるのJPanelに類似の容器、です。深さは整数であり、0が最下層であり、n-1が最上位層であり、nは成分の数である。 Positionは、レイヤー内でコンポーネントの位置を指定するint型(Integerラッパークラスを使用し、1つはプリミティブ型です)です.0は最上位レイヤー、-1は最下位レイヤー、間には、数字が小さいほど高い位置になります。したがって、1つのレイヤー内の4つのコンポーネントは、最上位から最下位に向かって0,1,2,1の位置に配置できます。
私の質問は、どちらの概念を持つ必要がありますか?
たとえば、画像付きの3つのJLabel:フロントボード、バックボード、およびピースを作成しました。この作品はフロントボードの前にあり、フロントボードとバックボードの間にあることもあります。 2番目の例を見てみましょう。
Iは、これらの手段のいずれかを介して同じ効果を得ることができる:
1)I 0、位置0を層にバックボードを設定することができます。レイヤー1のピース、位置0;そしてfrontBoard位置0
or
2、2層に)I 0、位置-1層にバックボードを設定することができます。レイヤー0、位置1へのピース。フロントボードをレイヤー0、ポジション0に変更します。
これらの方法の両方をテストしましたが、2つの方法の機能的な違いはありません。
誰でもこの謎を解き明かしてくれますか?
あらかじめ定義された定数を使用しやすいことは確かにプラスです。私は2つの方法の間にいくつかの実際の機能的な違いを見つけることを望んでいたが、私はあなたが正しいと信じて、ない。 「位置」の説明には、一番下の位置が-1であり、一番上の位置が0であり、その間の有効な値がn-1ではなくn-2であることは記載されていません。 お返事ありがとうございます! – NeutralAngel