コンボ ボックスの選択に基づいて UI 要素を動的に切り替える
ダイアログ ボックスでは、選択に基づいて特定のコントロールのセットを表示する必要がありますコンボボックスで作りました。これは、複数のレイヤーを使用し、コンボ ボックスがオンまたはオフになっているときにそれらを切り替えることによって実現されます。
コントロールの階層化のための CardLayout
CardLayout は、これに対する効果的なソリューションです。シナリオ。 「カード」と呼ばれる複数のパネルを用意し、レイアウトを変更することで一度に 1 つだけ表示できます。
次のコード スニペットは、これを実装する方法を示しています。
<code class="java">import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class CardBoxExample { private static final CardLayout cardLayout = new CardLayout(); private static final JPanel cards = new JPanel(cardLayout); private static final JComboBox<String> combo = new JComboBox<>(); public static void main(String[] args) { // Create the cards JPanel panel1 = new JPanel(); panel1.setBackground(Color.RED); JPanel panel2 = new JPanel(); panel2.setBackground(Color.GREEN); cards.add(panel1, "Panel 1"); cards.add(panel2, "Panel 2"); // Add the combo box JPanel control = new JPanel(); combo.addItem("Panel 1"); combo.addItem("Panel 2"); combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(cards, combo.getSelectedItem().toString()); } }); control.add(combo); // Create the frame and add the components JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(cards, BorderLayout.CENTER); frame.add(control, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } }</code>
コンボ ボックスの選択が変更されると、ActionListener はカード パネルのレイアウトを更新して、選択されたカードを表示します。これにより、ユーザー入力に基づいて、異なるコントロール グループ間をシームレスに移行できます。
以上がコンボボックスの選択に基づいて UI 要素を動的に切り替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。