jcombobox 예제

이 예제의 전체 소스 코드는 CustomComboBoxDemo.java에 있습니다. 필요한 이미지 파일을 얻으려면 예제 인덱스를 참조하십시오. 이 코드는 이전 예제와 매우 유사하지만 몇 가지 설명을 보증합니다. 굵은 코드 줄은 사용자가 값을 입력할 수 있도록 편집을 명시적으로 켭니다. 기본적으로 콤보 상자를 편집할 수 없기 때문에 이 필요합니다. 이 특정 예제에서는 메뉴가 자주 사용하는 패턴에 대한 바로 가기만 하면 가능한 모든 날짜 서식 지정 패턴을 제공하지 않기 때문에 콤보 상자에서 편집할 수 있습니다. JComboBox는 낮은 수준의 이벤트 포커스, 키 및 마우스 이벤트에 대해 리스너를 등록하는 메서드를 상속하지만, 예를 들어 콤보 상자에서 낮은 수준의 이벤트를 수신하지 않는 것이 좋습니다. 그 이유는 다음과 같습니다: 콤보 박스는 두 개 이상의 다른 성분으로 구성된 복합 성분입니다. 콤보 상자 자체는 액션 이벤트와 같은 높은 수준의 이벤트를 발생시다. 하위 구성 요소는 마우스, 키 및 포커스 이벤트와 같은 하위 수준 이벤트를 발생시다. 낮은 수준의 이벤트와 이를 발생시키는 하위 구성 요소는 모양과 느낌에 따라 달라집니다. 모양 및 느낌 종속 코드를 작성하지 않으려면 콤보 상자와 같은 컴포넌트에 대한 상위 수준 이벤트만 수신해야 합니다.

상위 및 하위 수준 이벤트에 대한 토론을 포함하여 이벤트에 대한 자세한 내용은 이벤트 리스너작성을 참조하십시오. 경고: 중복 String 개체를 추가하면 포커스 및 키보드 탐색 문제가 발생할 수 있습니다. 해결 방법은 String 개체 대신 새 개체를 추가하고 toString() 메서드가 정의되어 있는지 확인하는 것입니다. 예: 예제의 다음 문은 ComboBoxRenderer(사용자 지정 클래스)의 인스턴스를 만들고 콤보 상자의 렌더러로 인스턴스를 설정합니다. 콤보 상자에 다른 항목을 넣거나 콤보 상자의 항목 모양을 사용자 지정하려면 사용자 지정 렌더러를 작성해야 합니다. 편집 가능한 콤보 상자에는 사용자 지정 편집기도 필요합니다. 정보 및 예제는 사용자 지정 렌더러 제공을 참조하십시오. aListener는 선택한 항목이 변경될 때 하나 또는 두 개의 ItemEvents를 받게 됩니다. . 콤보 상자와 목록은 동일한 유형의 렌더러 ListCellRender를 사용합니다. 프로그램에 적합한 경우 콤보 상자와 목록 간에 렌더러를 공유하여 시간을 절약할 수 있습니다.

개체를 설정하면 키보드 문자가 목록 선택영역으로 변환됩니다. 지정된 키보드 문자에 해당하는 목록 항목을 선택하고 해당 문자에 해당하는 항목이 있는 경우 true를 반환합니다.