본문 바로가기

자바공부

자바 Swing JComboBox, 콤보박스 컴포넌트, 명품자바프로그래밍11장

728x90
반응형

* JComboBox는 텍스트 필드, 버튼 그리고 드롭다운(drop down) 리스트로 구성되는 콤보박스 컴포넌트를 구현한다.

초기에는 텍스트필드 창과 버튼만 보이지만 버튼을 클릭하면 드롭다운 리스트가 아래로 출력된다.

텍스트필드 창은 현재 선택된 아이템을 보여주는 창이며, 사용자가 리스트에서 아이템을 선택하면 텍스트필드 창에 나타난다.

 

생성자 :

1) JComboBox()

아이템이 없는 빈 콤보박스 생성

2) JComboBox(Vector items)

벡터 items로부터 아이템을 공급받는 콤보박스 생성.

콤보박스가 일단 생성된 후 items를 수정하여도 아이템을 전혀 변경할 수 없음

3) JComboBox(Object [] items)

배열 items로부터 아이템을 공급받는 콤보박스 생성.

콤보박스가 일단 생성된 후 items를 수정하여도 아이템을 전혀 변경할 수 없음

 

* 배열로부터 콤보박스 컴포넌트 생성

String[] fruits = {"apple", "banana", "kiwi", "mango", "pear",
			"peach", "berry", "strawberry", "blackberry"};
JComboBox strCombo = new JComboBox(fruits);

 

* 콤보박스 컴포넌트에 동적으로 아이템 추가하기

빈 콤보박스가 아니여도 addItem() 메소드를 호출하여 아이템을 추가할 수 있다.

String[] names = {"kitae", "jaemoon", "hyosoo", "namyun"};
JComboBox nameCombo = new JComboBox();
for(int i=0; i<names.length; i++){
	nameCombo.addItem(names[i]);
}

 

* 콤보박스 컴포넌트 아이템 삭제하기

removeItem(Object obj), removeItemAt(int index), removeAllItems() 등을 호출하여 콤보박스의 아이템을 삭제할 수 있다.

nameCombo.removeItemAt(2); // 3번째 아이템 삭제

 

* 콤보박스의 아이템을 선택하면 두 종류의 이벤트가 동시에 각각 발생한다.

1) Action 이벤트

아이템 선택을 일종의 명령으로 처리하고자 하면 Action 이벤트를 처리

2) Item 이벤트

단순히 아이템을 선택하거나 해제하는 것으로 의미를 두고자 하면 Item 이벤트를 처리

int getSelectedIndex() // 선택 상태인 아이템의 인덱스 번호를 리턴한다.
Object setSelectedItem() // 선택 상태인 아이템 객체의 레퍼런스를 리턴한다.

 

* 하나의 아이템 선택 시 Action 이벤트는 무조건 한 개 발생하지만, Item 이벤트의 경우는 다르다.

선택한 아이템이 새로운 아이템이 아니라면 Item 이벤트는 발생하지 않는다.

또 새로운 아이템이 선택되었다면 2개의 Item 이벤트가 발생하는데, 새로 아이템이 선택되었음을 알리기 위한 Item 이벤트와 이전에 선택된 아이템이 해제됨을 알리는 Item이다.

그러므로 응용프로그램 개발 시 Action 이벤트나 Item 이벤트 중 상황에 따라 필요한 이벤트를 활용해야한다.

반응형