반응형
5천년만에 블로그에 글을 씁니다.^^ 반가워라.
자바(java)로 윈도우 어플리케이션을 만들고 있는데요.
자동완성 기능을 만들어 보려고 도전!!
JComboBox는 아래와 같이 생긴 녀석이죠.
아래와 같이 JComboBox에 Key Listener를 추가하니 이런..키보드를 아무리 눌러도 아무런 반응을 안 해주시네요..
combo1 = new JComboBox(model)
combo1.addKeyListener(new KeyAdapter() {
@Override
public void KeyTyped(KeyEvent ke) {
combo1.addKeyListener(new KeyAdapter() {
@Override
public void KeyTyped(KeyEvent ke) {
combo1.showPopup();
}
알고 보니.. JComboBox는 기본적으로 사용자 입력이 Item의 선택으로 이뤄지는 cmponent니깐
KeyEvent 가 먹지 않는 것이 이치에 맞는 것이더군요.
우리가 JComboBox의 editable 을 true로 설정하면 JComboBox라는 component에 editor라는 component가 덧 씌워지는 방식인가 봅니다.
그래서 찾아보니 아래 처럼 editor component에 KeyListener를 추가해줘야 하더군요^^
combo1 = new JComboBox(model)
combo1.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
@Override
public void KeyTyped(KeyEvent ke) {
combo1.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
@Override
public void KeyTyped(KeyEvent ke) {
combo1.showPopup();
}
제가 원했던데로 키보드 입력이 있으면 popup메뉴가 열리는 이벤트가 발생하는 군요^^
(출처 : http://castever.wordpress.com/2008/12/09/keylistener-in-jcombobox/)
하..전문 프로그래머가 아닌 필요에 의한 개발을 하는 '엔지니어'로서 Google에게 감사합니다.
반응형
'컴퓨터&IT > 자바 Java' 카테고리의 다른 글
Eclipse에서 JavaDoc 생성시 javadoc unmappable character for encoding MS949 에러 (0) | 2012.10.09 |
---|---|
자바(Java)로 만든 사칙연산 계산기. (4) | 2012.07.07 |
자바(Java) 프로그래밍할 때 데이터 타입의 사소한 실수??와 그에 대한 고민 (0) | 2012.03.18 |
자바의 main() 함수에 대해서 (0) | 2011.10.04 |
자바(Java)와 C의 차이 (2) | 2011.09.19 |