1

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

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

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

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

ご覧のとおり、NORTH の値を CENTER に変更して再実行すると、存在しないように見えます。

この問題が解決された後、別の質問を開始する可能性のある明確な 2 番目の問題を確認できる人にはボーナス ポイントを提供します。

これを読んでくれてありがとう。

アイデアや考えを事前にありがとう:)

リリース

4

2 に答える 2

3

最初にコードを投稿していれば、すぐに答えが得られたかもしれません。幸いなことに、他の回答へのリンクをコメントに投稿しました。

setContentPane() のものは奇妙です。特に、いくつかのことを行った後は、それが一掃されます。しかし、それはあなたの問題ではありません。

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

そのため、CENTER ではなく NORTH に表示されます。

于 2010-01-05T00:50:44.193 に答える
1

ビデオを表示することができません。何年もの間バッファリングされています。

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

ゲーム パネルは、 に対して適切な値を返す必要がありますgetPreferredSize()

アップデート

もう 1 つの方法は、ゲーム パネルにScrollableインターフェイスを実装させることです。その後、オーバーライドgetScrollableTracksViewportWidth...heightて戻ることができるtrueため、パネルは強制的にスクロールペインのサイズになります。

于 2010-01-04T23:27:46.283 に答える