> Java > java지도 시간 > Java에서 종속 선택을 사용하여 동적 JComboBox를 만드는 방법은 무엇입니까?

Java에서 종속 선택을 사용하여 동적 JComboBox를 만드는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-24 06:47:22
원래의
463명이 탐색했습니다.

How to Create Dynamic JComboBoxes with Dependent Selections in Java?

동적 JComboBoxes: 선택 항목을 기반으로 종속 ComboBox 채우기

소개

목표는 다음과 같습니다. 하나의 옵션 목록이 선택한 항목에 따라 변경되는 두 개의 동적 JComboBox를 만듭니다. 다른 항목의 항목입니다. 이는 강좌, 과목 등의 계층적 데이터를 나타낼 때 유용합니다.

해결책

이 기능을 구현하려면 다음 단계를 따르세요.

  1. 각각에 대해 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"});
    로그인 후 복사
  2. JComboBox2의 초기 모델을 설정합니다.

    JComboBox2의 초기 ComboBoxModel을 첫 번째 옵션 세트로 설정합니다( 이 경우 코스의 과목 1).

    combo2.setModel(subjectsModel1);
    로그인 후 복사
  3. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿