2010-11-18 7 views

답변

1

첫 번째 항목이 아닌 다음과 같은 종류의 작업이 선택됩니다. 그러나 키보드를 사용하여 선택 항목을 변경하면 선택한 항목이기 때문에 처음부터 항상 시작됩니다.

import java.awt.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.plaf.basic.*; 

public class ComboBoxSelect extends JFrame 
{ 
    public ComboBoxSelect() 
    { 
     String[] items = { "Item1", "Item2", "Item3", "Item4", "Item5" }; 
     JComboBox comboBox = new JComboBox(items); 
     add(comboBox); 

     comboBox.addPopupMenuListener(new PopupMenuListener() 
     { 
      public void popupMenuWillBecomeVisible(PopupMenuEvent e) 
      { 
       JComboBox comboBox = (JComboBox)e.getSource(); 
       BasicComboPopup popup = (BasicComboPopup)comboBox.getAccessibleContext().getAccessibleChild(0); 
       JList list = popup.getList(); 
       list.setSelectedIndex(2); 
      } 

      public void popupMenuCanceled(PopupMenuEvent e) {} 
      public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {} 

     }); 
    } 

    public static void main(String[] args) 
    { 
     ComboBoxSelect frame = new ComboBoxSelect(); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

}

+0

이것은 완벽합니다! 고맙습니다!! – blow

0

이 쓰기까지 당신이 JComboBox에 수정 수있는 방법에 대한 지침을 제공한다 : 그것은 자동 완성 기능을 위해 쓰여 있지만

는 사용자 정의 메커니즘은 매우 유사하다 선택하지 않고 강조 (아마 더 쉬울 것이다).

+0

이 솔루션을 사용 setSelectedItem 팝업에서 항목을 highligth합니다. – blow