문제

JLIST 용 사용자 정의 셀 렌더러를 만들 때마다 추가 요소는 동작에 응답하지 않습니다. 예를 들어, 셀 렌더러에 요소가있는 jpanel을 반환하고 그 중 하나는 ActionListener가있는 경우 전혀 응답하지 않습니다.

왜 이런거야?

도움이 되었습니까?

해결책

목록 셀 렌더러로 반환하는 항목은 정확히 다음과 같습니다. 표현. JLIST로 리스너를 등록하십시오 (일반적으로 ListSelectionListener를 원할 것입니다).

다른 팁

렌더러는 셀의 구성 요소를 반환하기위한 공장처럼 보일 수 있지만 실제로는 다음과 같습니다. 플라이급 렌더링 접근하고 사용합니다 같은 모든 셀을 렌더링하기위한 구성 요소 (각 호출 getListCellRendererComponent() 특정 셀에 대해 동일한 구성 요소 인스턴스를 재구성하고 셀을 렌더링 할 수 있도록 반환해야합니다).

그렇게하면 가질 수 있습니다 JList (만큼 잘 JTable 그리고 JTree) 각 셀에 대한 구성 요소를 시동 할 필요없이 막대한 양의 셀을 표시합니다. 부작용으로 렌더 구성 요소는 렌더 루프 중에 만 사용되지만 구성 요소 트리에는 나타나지 않으므로 이벤트에 응답 할 수 없습니다.

Neil Coffey가 말했듯이 청취자를 추가 할 수 있습니다. JList (JTable, JTree) 대신, 도우미 방법을 사용하십시오 (locationToIndex(...), getCellBounds(...))) 어떤 세포가 영향을받은 지에 따라 세포 특이 적 논리를 다루기 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top