根據組合方塊選擇動態切換UI 元素
在對話方塊中,您需要根據選擇顯示特定的控制項集在組合方塊中製作。這是透過使用多個圖層並在選取或取消選取組合方塊時在它們之間切換來實現的。
用於控制分層的 CardLayout
CardLayout 是對此的有效解決方案設想。它允許您擁有多個面板(稱為“卡片”),並透過更改佈局一次僅顯示一個面板。
以下程式碼片段示範如何實現這一點:
<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中文網其他相關文章!