簡體   English   中英

JTable阻止所有排序

[英]JTable prevent all sorting

是否可以防止在JTable上將所有內容排序在一起? 基本上,我不希望用戶單擊表頭並且內容處於靜態順序時不會發生任何事情。

參見Javadoc

公共無效setRowSorter(RowSorter分類器)

參數: sorter - RowSorter ; null打開排序

基本上,我不希望用戶單擊表頭並且內容處於靜態順序時不會發生任何事情。

基本上JTable沒有任何Sorter,您必須刪除代碼行

- JTable#setAutoCreateRowSorter(true);

- table.setRowSorter(sorter);

- custom Comparator added as MouseEvent to the JTableHeader

查看並閱讀有關排序和篩選的JTable教程

當用戶單擊任何表標題列時,禁用排序的最佳和簡單方法:

  1. 首先,您需要在表標題上創建鼠標單擊偵聽器
  2. 在它的內部,僅使鼠標左鍵可用(帶有SwingUtilities)
  3. 插入這行代碼

    yourTableVariable.setRowSorter(NULL);

實際示例:

yourTableVariable.getTableHeader().addMouseListener(new MouseAdapter() //here you make the click avaible ONLY on Table Header 
    {
        @Override
        public void mouseClicked(MouseEvent arg0) 
        {
            if (SwingUtilities.isLeftMouseButton(arg0)) //here you select the mouse left click action 
            {
                yourTableVariable.setRowSorter(null); //here is disableing the sorting                  
            }
        }
    });

暫無
暫無

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

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