동적 JComboBoxes: 선택 항목을 기반으로 종속 ComboBox 채우기
소개
목표는 다음과 같습니다. 하나의 옵션 목록이 선택한 항목에 따라 변경되는 두 개의 동적 JComboBox를 만듭니다. 다른 항목의 항목입니다. 이는 강좌, 과목 등의 계층적 데이터를 나타낼 때 유용합니다.
해결책
이 기능을 구현하려면 다음 단계를 따르세요.
각각에 대해 DefaultComboBoxModel 생성 설정:
강좌, 과목 등 각 옵션 세트에 대해 별도의 DefaultComboBoxModel을 만듭니다. 예:
DefaultComboBoxModel coursesModel = new DefaultComboBoxModel(new String[] {"Course 1", "Course 2", "Course 3"}); DefaultComboBoxModel subjectsModel1 = new DefaultComboBoxModel(new String[] {"A1", "A2"}); DefaultComboBoxModel subjectsModel2 = new DefaultComboBoxModel(new String[] {"B1", "B2", "B3", "B4"});
JComboBox2의 초기 모델을 설정합니다.
JComboBox2의 초기 ComboBoxModel을 첫 번째 옵션 세트로 설정합니다( 이 경우 코스의 과목 1).
combo2.setModel(subjectsModel1);
JComboBox1에서 선택 이벤트를 처리합니다.
JComboBox1에 ActionListener를 추가하여 선택 변경 사항을 모니터링합니다. 사용자가 강좌를 선택하면 JComboBox2의 ComboBoxModel을 해당 강좌의 해당 과목으로 업데이트합니다.
combo1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int i = combo1.getSelectedIndex(); combo2.setModel(subjectsModels[i]); } });
구현 예
다음 코드 조각은 솔루션:
import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; public class DynamicCombos extends JPanel { public DynamicCombos() { ComboBoxModel[] models = new ComboBoxModel[3]; models[0] = new DefaultComboBoxModel(new String[] {"Course 1", "Course 2", "Course 3"}); models[1] = new DefaultComboBoxModel(new String[] {"A1", "A2"}); models[2] = new DefaultComboBoxModel(new String[] {"B1", "B2", "B3", "B4"}); JComboBox combo1 = new JComboBox(models[0]); JComboBox combo2 = new JComboBox(models[1]); combo1.addActionListener(e -> combo2.setModel(models[combo1.getSelectedIndex()])); add(combo1); add(combo2); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new DynamicCombos()); frame.pack(); frame.setVisible(true); } }
결론
DefaultComboBoxModel 및 이벤트 처리를 활용하여 이 솔루션을 사용하면 다른 JComboBox의 선택 항목을 기반으로 JComboBox를 동적으로 채울 수 있습니다. 이 기술은 데이터가 계층적으로 구성되어 있고 사용자 친화적인 인터페이스로 표시되어야 하는 상황에서 특히 유용합니다.
위 내용은 Java에서 종속 선택을 사용하여 동적 JComboBox를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!