得到COMPONENT(不是數據)我通過它傳遞數據的陣列如何在指數n的JList的
public class MyJList extends JList() {
...
public MyJList(final Object[] listData) {
super[listData];
}
我渲染使用了ListCellRenderer這個名單,它爲我提供了一個組件爲每個項目創建一個JList ,可以根據buisness邏輯啓用或禁用。
問題是當我試圖通過鍵盤箭頭鍵導航。我希望跳過禁用的項目。 (在適當的方向前進到下一個)我必須使用KeyboardListener,因爲UI會根據列表上選擇的項目更改一些內容。麻煩的是,在鍵盤監聽器中,我無法獲得具有所選索引的項目的COMPONENT。該組件不屬於JList,並且調用MyJList.getComponent(index)失敗並出現ArrayIndexOutOfBoundsException。 1的索引太大,儘管我可以看到七個項目,其中四個已啓用。
我如何編程retreive通過指數的成分從我的JList,以確定它是否啓用?似乎返回Component的唯一接口是getListCellRendererComponent() - 它更改組件的顯示。我只想獲取組件以查看它是否已啓用。
爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/)。 –
您可能會發現[這](http://stackoverflow.com/a/8344497/1048330)回答有用。它通過重寫'ListSelectionModel'中的'setSelectionInterval'實現你所需要的。 – tenorsax