인덱스 N에서 COMPONENT (되지 않은 데이터)를 얻기 위해 어떻게 그것을 각 항목에 대해 나에게 구성 요소를 제공합니다 나는의 ListCellRenderer를 사용하여이 목록을 렌더링는 JList의
public class MyJList extends JList() {
...
public MyJList(final Object[] listData) {
super[listData];
}
데이터의 배열을 전달하여하는 JList를 만들 이는 영업 논리에 따라 활성화 또는 비활성화 될 수 있습니다.
키보드 화살표로 탐색하려고하면 문제가 발생합니다. 비활성화 된 항목을 건너 뛰고 싶습니다. (적절한 방향으로 다음 항목으로 이동) 목록에서 선택된 항목에 따라 UI가 일부 항목을 변경하기 때문에 KeyboardListener를 사용해야합니다. 문제는 키보드 수신기에서 선택한 색인이있는 항목의 구성 요소를 가져올 수 없다는 것입니다. 이 Component는 JList가 소유하고 있지 않습니다. MyList.getComponent (index)를 호출하면 (자) ArrayIndexOutOfBoundsException가 발생 해 실패합니다. 1은 7 개의 항목을 볼 수 있지만 4 개의 항목이 활성화되어 있어도 너무 큰 색인입니다.
JList의 인덱스를 사용하여 구성 요소를 프로그래밍 방식으로 검색하여 활성화되어 있는지 확인할 수 있습니까? Component를 반환하는 것으로 보이는 유일한 인터페이스는 getListCellRendererComponent()입니다.이 인터페이스는 구성 요소의 표시를 변경합니다. 난 단지 구성 요소가 활성화되었는지 확인하려고합니다.
더 빨리 도움 들어 [SSCCE (http://sscce.org/)를 작성. –
[this] (http://stackoverflow.com/a/8344497/1048330) 대답이 유용 할 수 있습니다. 'ListSelectionModel'에서'setSelectionInterval'을 오버 라이딩함으로써 여러분이 필요로하는 것을 정확하게 수행합니다. – tenorsax