簡體   English   中英

將 JTable 與單元格選擇一起使用時,選擇一個單元格會刪除整個選擇

[英]When using JTable with cell selection, selecting a cell removes whole selection

我有一張表,您可以在其中輸入 select 個特定單元格。 當您使用 Ctrl 鍵單擊 select 第一列的第 1 行和第 2 行時,然后您刪除其中一行的選擇,另一行也會被取消選擇:

 public static void main(String[] args)
    {
        JFrame jf = new JFrame("Test");
        JTable table = new JTable();
        table.setCellSelectionEnabled(true);
        DefaultTableModel tm = new DefaultTableModel(new Object[][]{new Object[]{1,"A"},new Object[]{2, "B"},new Object[]{3, "C"}}, new Object[]{"Test", "Test2"});
        table.setModel(tm);
        jf.setSize(300, 400);
        jf.getContentPane().add(table);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
    }

最初的

Ctrl + 單擊測試/2:

結果

我期望:

期望值

根據我對 Swing 代碼的理解,問題是列選擇 model 有一個代碼執行類似的操作:如果選擇了 col = 0,則完全刪除選擇。 因此,當表格重新呈現時,沒有列選擇並且整個選擇被清除。

有沒有辦法在不重新編碼整個 DefaultSelectionModel 的情況下防止整個取消選擇?

我通過跟蹤最后選定的列並有一個選擇偵聽器來檢查選定的行數是否 > 0 來解決它,然后 select 最后選定的列,可能不完美但它似乎工作正常

暫無
暫無

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

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