콤보 상자 선택에 따라 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!