Jframeに2つのJPanelがあります。上部パネルには1つのJComboboxがあります。下のパネルには、上のパネルのコンボボックスでの選択に基づいて、さまざまなコンポーネントが動的に入力されます。下のパネルに追加されるコンポーネントのタイプと数は常に動的です。以下の例-
下部JPanel:
JLabelA:JCombobox
JLabelB:JCombobox + JTextfield
JLabelC:JCombobox1 + JCombobox2 + JCombobox3
JLabelD:JList
ユーザーは、目的のコンポーネントの値を選択/入力してから、[送信]ボタンをクリックできます。ボタンをクリックすると。カスタム検証を行う必要があります(たとえば、一部のコンポーネントは必須、一部はオプションであり、上記のJLabelCの場合、3つのコンボボックスすべてで値が選択されています)。すべての検証に合格したら、下のパネルでユーザーが選択/提供した値を取得する必要があります。下のパネルのコンポーネントの名前は固定されていないため、値を直接フェッチすることはできません。1つのアプローチは、下部パネルのすべてのコンポーネントを1つずつトラバースし、値を選択することです。ユーザーが何らかの入力を提供したものだけをトラバースする必要があるのに対し、すべてをトラバースする必要があるため、これはあまり効率的ではないようです。
クエリ-
1)検証をコンポーネントにアタッチするにはどうすればよいですか(JavaScript検証で実行できるように)?
2)コンポーネントの値を取得するための代替アプローチを提案してください。