2011-02-25 2 views
0
MyJList myList = new MyJList(); 
    myList.addListSelectionListener(new ListSelectionListener() { 

    @Override 
    public void valueChanged(ListSelectionEvent e) { 

    if(!e.getValueIsAdjusting()){ 
     System.out.println("Selected!"); 
    } 
    } 
}); 

. . 청취 JList setSelectedIndex

내가 마우스로리스트 항목을 클릭

, 나는 메시지가 표시

class MyList extends JList{ 


    public MyList() { 
    super(); 

    this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 

    this.setSelectedIndex(0); 

    } 

은}«! 선정».

프로그램이 시작되면이 메시지는 표시되지 않고 항목 # 0이 선택됩니다.

답변

2

당신 setSelectedIndex

그리고 그 후, 추가 setSelectedIndex가 호출 SelectionListener

... 당신의 순서에 더 리스너

+0

당신 말이 맞습니다. 고맙습니다. – Alexandr

0

이것은 정확하게 일어날 일입니다. valueChanged은 사용자가 항목을 선택할 때만 호출됩니다. setSelectedIndex은 리스너를 호출하지 않습니다.

생성자에서
0

봐가없는 코드 :

a) 목록을 만들고 색인을 0으로 설정합니다.
b) ListSelectionListener를 추가합니다. 이벤트가 시작되지 않도록 리스너를 추가 한 이후로 아무 것도 변경되지 않았습니다. 추가

시도해보십시오 이벤트가 발생하면

list.setSelectedIndex(1) 

청취자를 추가 한 후보고.