4

Tiledというプログラムを使うつもりでしたが、すべてがブロックになっていて、少し自由が制限されていたので、使わないことにしました。

私の質問は、Tiledのように見えるものにどのレイアウトマネージャーを使用するかです。私はその感触が本当に好きで、このツールを作成するときは、コンポーネントを動かしたときに同じように動作させたいと思っています。

これが私がやったことと考えていたことです:

  • メニューバーとコンテンツペインを含むJFrameを用意します。(完璧なATMで動作します)
  • コンテンツペインはBorderLayoutです。(完璧なATMで動作します)
  • コンテンツペインの内側には、以下のようなツールバーがあります。(完璧なATMで動作します)
  • ツールバーの中には、画像、別名アイコンとして表示され、赤い円のようにクリックできるボタンがあります。
  • コンテンツペインには、2つのJパネルが含まれます
  • 最初のJパネルは黒い円のようになり、そこにペイントするマップが含まれます
  • 2番目のJパネルには、レイヤー、履歴、アトラス、画像などのコンポーネントが含まれます
  • 最初のJパネルは中央になり、2番目のJパネルは東になります

これが私の問題です:

  • GUIを起動すると、適切なJPanelがほとんど得られず、JListなどの実際のコンテンツが含まれていない限り、GUIをさらに広くすることはできないようです。

私はあなた方全員にあなたが何をするかについて私を導くように頼んでいます。私は以前にGUIを作成しましたが、レイアウトマネージャーの選択に関して実際にこれに対処する方法と、この特定の状況でGUIを正確に使用する方法を理解するのに十分な経験がありません。私が必要とするのは、あなたがそれを行う方法とその理由に関する基本的な情報だけです。コードは必要ありません。ありがとう!

タイル張り

Tiledのような私のプログラム

4

2 に答える 2

4

MigLayoutの使用をお勧めします。これは非常に強力で、非常によくサポートされているサードパーティのレイアウトマネージャーです。これをJavaに含めるよう求める(これまでのところ失敗した)請願がありました。MigLayoutを使用すると、妥協することなく、はるかに少ないコードを使用して、やりたいことが何でもできます。私はそれについて続けることができますが、あなたが彼らのデモとサンプルコードを閲覧するだけで、あなたはあなた自身のために見るでしょう。

于 2012-06-29T19:37:06.427 に答える
3

正しいJPanelをJPanelのサブクラスにし、そのgetPreferredSize()メソッドをオーバーライドして、ほとんどの(すべてではない)レイアウトマネージャーが尊重する適切なサイズを返します。

于 2012-06-29T20:02:04.333 に答える