2
글자 사전 목록을 사용하여 선행 입력 기능을 추가하는 JComboBox가 있습니다. 사용자가 문자열을 입력하고 앞뒤를 보길 원합니다 (이것은 Glazedlists 덕분에 작동합니다). 그러나 사용자가 콤보 상자의 아래쪽 화살표를 클릭하고 드롭 다운 목록을 검사 할 수 없도록하고 싶습니다. 아래쪽 화살표를 보이지 않게하고 콤보 상자를 편집 가능하게 만들어 JTextField와 비슷하게 만들었습니다. 그러나 아래쪽 화살표가 있던 곳 위로 마우스를 가져 가서 클릭 할 수 있습니다. 드롭 다운이 나타납니다. '클릭하여 드롭 다운'기능을 제거하기 위해 무엇을 변경하거나 어떤 메소드를 재정의합니까?JComboBox의 '클릭하고 드롭 다운'기능을 어떻게 제거합니까?
ComboBox<String> box = new ComboBox<String>();
box.setEditable(true);
box.setUI(new BasicComboBoxUI(){ // make the down arrow invisible
protected JButton createArrowButton() {
return new JButton() {
public int getWidth() {
return 0;
}
};
}
});
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Object[] elements = new Object[] {"java", "perl", "python", "haskell", "erlang", "groovy"};
AutoCompleteSupport.install(box, GlazedLists.eventListOf(elements));
}
});