0

私のプログラムはこんな感じ!

ここに画像の説明を入力してください

ComboBoxで選択した項目に応じて、下部のフレームを下部のフレームに動的にロードするようにしたい。たとえば、最初の項目が選択されている場合、PresentValue.javaファイルのパネルを表示します。アイデアは、選択ごとに1つのJavaファイルがあり、それぞれのJavaファイルでデザインしたものを表示するというものです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これらの2つのJavaファイルは、コンボボックスからの選択に応じて、最初のスクリーンショットの「下」ボックスに配置する必要があります。

私はAndroidプログラミングに慣れているので、フラグメントからreplaceメソッドを呼び出して、ロードされたフラグメントをスワップアウトします...ここで類推を探します。

final JComboBox selectorBox = new JComboBox(selection);
    selectorBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            int selectionID = selectorBox.getSelectedIndex();

        }
    });

しかし、私がやりたいことをする方法を見つけることができません。説明してください。

4

2 に答える 2

4

所有しているJavaファイルごとに、そのJavaファイルの出力は。である必要がありJPanelます。ではありませんJFrame

何かを表示する前に、持っているすべてのJavaファイルを実行します。可能なすべてを作成しますJPanel

GUIでJFrameを作成してから、のremoveメソッドとaddメソッドを使用して、目的のJFrameを削除または追加しますJPanel

これが私のGUIの1つの例です。

public void updatePartControl() {
    Thread thread = new CountdownThread(model, this, displayPanel);
    thread.start();

    frame.remove(alarmPanel.getPanel());
    frame.add(displayPanel.getPanel());
    frame.validate();
    frame.pack();
    frame.setBounds(getBounds());
}

setBoundsメソッドは、表示JPanelがアラームよりも大きいか小さい場合に境界をリセットしますJPanel

アプリケーションには1つ必要JFrameです。JPanelGUIを作成するために複数のを使用します。

于 2012-10-10T17:44:27.093 に答える
3

下部のコンポーネントの変更は、使用しているレイアウトマネージャーによって異なります。CardLayoutは、パネルを交換するために設計された目的です。

public void actionPerformed(ActionEvent arg0) {
   int selectionID = selectorBox.getSelectedIndex();
   if (selectionID == 0) {
      cardLayout.show(basePanel, SELECTED_1);
   } 
   // handle other selections

}
于 2012-10-10T17:46:02.980 に答える