質問

しばらくゲームを開発していて、現在 GUI を再開発中、または少なくとも再開発しようとしています。レイアウトマネージャーをよく理解していなかったので、フレームのサイズを(問題なく)変更できないという大きな問題がありました。いくつかのプロジェクトを経て、戻ってきてゲームについてさらに作業をする時間になりましたが、問題が発生しました...

メイン フレームの基本レイアウトは、1 つの gameScrollPane と 1 つの controlPanel を含む mainPane です。スクロールペインはスクロールペイン、コントロールパネルは通常のパネルです。スクロール ペインにはメイン ゲーム パネルが含まれています。

スクロール ペインが画面の大部分を占め、多くのシム系ゲームと同様に、コントロール パネルが小さな下部領域を占めるようにしたかったため、mainPane にはボーダー レイアウトを選択しました。スクロール ペインを追加し、制約 CENTER を設定し、コントロール パネルを追加し、制約を SOUTH に設定しました。これではスクロール ペインが表示されなかったので、さまざまな制約を試してみましたが、スクロール ペインの制約を北に設定した場合にのみ表示されるようです。

これを実証するために、簡単なビデオを作成しました。http://screenjel.ly/q5RjczwZjH8

ご覧のとおり、NORTH の値を CENTER に変更して再実行すると、そこには存在しないかのようです。

2 つ目の問題が明確にわかる人にはボーナス ポイントを差し上げます。この問題が解決したら、別の質問を開始する可能性があります。

読んでいただきありがとうございます。

アイデアやご意見がございましたら、よろしくお願いいたします:)

レル

役に立ちましたか?

解決

ビデオを表示できません。何年もの間バッファリングされてきました。

私の推測では、スクロールペインが実際には中央を埋めているのではないかと思います。ゲームパネルが表示されていないだけです。

ゲームパネルは適切な値を返す必要があります。 getPreferredSize().

アップデート

もう 1 つやりたいことは、ゲーム パネルに Scrollable インターフェース。その後、オーバーライドできます getScrollableTracksViewportWidth そして ...height 戻る true そのため、パネルはスクロールペインのサイズに強制的に合わせられます。

他のヒント

あなたは、あなたが本当に迅速な答えを得ているかもしれないと起動するいくつかのコードを投稿したい場合。幸いなことに、あなたは他の回答にコメント内のリンクを掲載します。

setContentPane()のものは、特に、その後全滅れますそれにはいくつかのことをやった後、奇妙です。しかし、それはあなたの問題ではない。

問題は、あなたが任意の制約なし右mainPaneにlevelMakerとpersonMoverを追加しているということです。これらは、その後、この場合、以前に設定されgameScrollPaneに...あなたがCENTERに設定されたものを吹き飛ばすされます。

あなたはNORTHのためではなくCENTERのためにそれを参照してください理由です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top