2

nullレイアウトマネージャーを機能させるのに問題があり、nullレイアウトマネージャーを使用するときに覚えておくべきことがあるこの素晴らしいページを見つけました。そのうちの1つは私の問題で、すぐに先に進みました。

nullレイアウトマネージャーを使用している別のパネルでも同様の問題が発生しています。しかし、このページはどこにも見つかりません!それで、何ですか?

この質問をする過程で、私は自分の問題を理解しました。この質問はどこにも見つからなかったので、私はまだこの知識をサイトに追加したいと思います。それは他の誰かに役立つかもしれません。

明確にするために、ドラッグとアニメーションの要件のため、このパネルにはnullレイアウトマネージャーを使用する必要があると既に判断しました。それは問題ではありません。

4

2 に答える 2

1

探していたリンクが見つかりました:

http://download.oracle.com/javase/tutorial/uiswing/layout/none.html

それはこれらの3つのことを与えます:

  • を呼び出して、コンテナのレイアウトマネージャをnullに設定しますContainer.setLayout(null)
  • Component.setBounds()コンテナの各子を呼び出します。
  • 電話Component.repaint()

しかし、たまたま、私の問題は、私がもう1つのことをしていなかったことでした。

  • を使用して各コンポーネントをコンテナに追加しますContainer.add(Component)
于 2010-08-22T19:20:16.587 に答える
1

コンポーネントをコンテナに追加することは、null レイアウトまたは LayoutManager を使用するかどうかに関係なく行うことです。

null レイアウトを使用する際に覚えておく必要があると思われる 3 つのことは次のとおりです。

  1. コンポーネントのサイズを設定します (通常は推奨サイズ)

  2. コンポーネントの位置を設定する

  3. コンポーネントを含むコンテナの適切なサイズを設定します。ほとんどの場合、適切なサイズを設定しなくてもコードは機能しますが、パネルをスクロール ペインに追加しようとしても機能しません。これは、Container の優先サイズがスクロールペインのサイズよりも大きい場合に、スクロールバーが自動的に表示されるためです。null レイアウトの場合、推奨サイズは 0 です。

于 2010-08-22T19:39:31.283 に答える