0

私はjFrame =フレームを持っています

jcombobox = コンボがあります

それから私はjpanel =パネルを持っています

このパネル内に多くのコンポーネントがあります

このパネルをコンボボックス popupmenu に追加しようとしています

コンボボックスがクリックされた場合、

多くのコンポーネントを含むパネルが表示されます

コンボボックスのポップアップメニューにパネルを追加することは可能ですか?!?!

どうやってするの???

私はすでに読んだ

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

http://docs.oracle.com/javase/tutorial/uiswing/examples/components/ComboBoxDemoProject/src/components/ComboBoxDemo.java

しかし、まだ手がかりがありません

どうやってするの?

助けてくれてありがとう...

4

1 に答える 1

0

あなたの説明から、コンボボックスがクリックされた場合に表示したい、表示されていないパネルがありますか?それで、それはコンボボックスのどのオプションにも表示されますか?

それは十分に単純なはずです。このComboBoxDemoのをJavaチュートリアルから変更しJLabelてみましょう。どちらもから継承しているので、とを同じように見えるようにすることができます。JComponentJLabelJPanel

まず、デモが何をしているのかを理解していることを確認してください。コンボボックスオプションは、JLabelの日付のテキストの形式を変更しています。JComboBoxでオプションを選択するまで、このJLabelが表示されないようにデモを編集します。

まず、クラス変数としてブール値を含めて、任意のメソッドでブール値にアクセスできるようにします。

boolean visibleComp;

次に、コンストラクターで、JLabelの「結果」をデフォルトで非表示に変更する必要があります。これは、JComponentのsetVisibleメソッドを使用して行うことができます。

result.setVisible(false);

次に、結果がいつどのように表示されるかを制御する必要があります。コードを続行すると、actionPerformedメソッドがイベントを処理し、フォーマットの詳細を別のメソッドに渡すことがわかります。reformat.

コンストラクターでもreformatが呼び出されるため、actionPerformedメソッドでブール値を設定する必要があります。

visibleComp = true;

次に、再フォーマットのtryブロックに条件ステートメントを追加します。これにより、ブール値がtrueであるかどうかが確認されます。これは、ユーザーがアクションを実行した場合にのみ発生します。これを使用して、コンポーネントの可視性を設定できます。

if(visibleComp){
     result.setVisible(true);
}

この例では、JPanelを簡単に交換できます。お役に立てば幸いです。

于 2012-10-10T05:18:04.257 に答える