簡體   English   中英

ListSelectionModel和偵聽器

[英]ListSelectionModel and listener

我有一個帶有ListSelectionModel和ListSelectionListener的JTable。

選擇模型是在lsm.getSelectionModel()構造函數中設置的: lsm.getSelectionModel()

並通過公共方法設置ListSelectionListener:

    public void setListSelectionListener(ListSelectionListener l){
        lsm.addListSelectionListener(l);
    }

從Controller類調用:

    view.setTableSelectionListener(new ListSelectionListener(){
        @Override
        public void valueChanged(ListSelectionEvent e){
            if (!e.getValueIsAdjusting()) {
                int viewRow = e.getFirstIndex();
                System.out.println(viewRow + " is selected");                  
            }
        }
    });

因為偵聽器是在另一個類中創建的,所以我不能使用JTable的getSelectedRow(); 方法,但使用ListSelectionEvent對象的getFirstIndex(); 顯然沒有得到當前選擇。

所以我現在使用int viewRow = ((ListSelectionModel)e.getSource()).getLeadSelectionIndex());

這似乎是獲取當前選擇的正確方法嗎? 它似乎正在工作,但是我不確定這是否是不好的方法。 謝謝

僅getMinSelectionIndex()和getMaxSelectionIndex()有效,它們分別返回所選索引的最小值和最大值。 即使沒有選定的行,引導/錨定的選定索引也可能> = 0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM