1

文字列のリストを含むリスト ボックスがあります。選択した文字列に基づいて、下にテキスト ボックスのグループを表示する必要があります。私のアプローチは、テキスト ボックスのセットごとに JPanel を作成し、これらすべての JPanel をカード レイアウトに配置することです。ユーザーが特定の文字列を選択すると、カード レイアウトを反転して、テキスト ボックスを含む適切なパネルを表示します。ただし、ユーザーがいくつかのリスト値を選択しない可能性があるため、事前にすべてのパネルを作成したくありません。したがって、ユーザーがリスト値を選択した場合にのみ、カード レイアウトにこのカード (またはパネル) が追加されているかどうかを確認し、そうでない場合は、新しいパネル (テキスト ボックス付き) を作成してカード レイアウトに追加します。

しかし、CardLayout クラスには、特定のパネルがカード レイアウトに追加されているかどうかをテストできる API がありません。しかありません

void addLayoutComponent(String name,Component comp)

これは、パネルをカードレイアウトに正常に追加することをテストするために何も返しません。

これどうやってするの?

4

1 に答える 1

4

レイアウト マネージャーによって使用されるHashtable(さえない)がありますが、これは内部でのみ使用され、外部には公開されません。HashMapCardLayout

考えられる解決策は次の 2 つです。

  1. HashMap<String, JPanel>作成したパネルを説明するために別個に保持できます。
  2. 受信コンテナに追加する前に、参照リストを保持し、JPanelチェックしてインスタンス化することができます。null
于 2012-10-22T12:08:24.097 に答える