2013-04-30 56 views
0

當前每個標題都包含該列的名稱,並且在其下面包含一個組合框。每當組合框被點擊時,jtable自動分類。有沒有簡單的方法來禁用排序只是組合框的點擊,同時保留頭的其餘部分按點擊排序。JTable分割標題禁用排序

我有人建議JXTable,但我擔心它會引起更多的問題,比它會解決。

任何幫助表示讚賞。

+0

http://stackoverflow.com/questions/3312953/how-can-you-disable-all-sorting-code-in-jtable-in-1-6給出了一些信息,但不完全是你想要的。 – 2013-04-30 16:08:17

+0

我不確定你在說什麼......以及我是那種。你能提供一些項目的代碼嗎? – 2013-04-30 16:18:09

+0

代碼是有點散開(應該清理,但這是另一個問題)。我想維護標題其餘部分的排序功能,但忽略組合框的排序。不太確定如何覆蓋JTable的排序。 – 2013-04-30 16:33:08

回答

0

嘗試類似:

public class SortFilterTableHeaderUI extends BasicTableHeaderUI { 

    private Component filteredComponent; 

    @Override 
    protected MouseInputListener createMouseInputListener() { 
     return new MouseInputHandler() { 

      @Override 
      public void mouseClicked(MouseEvent e) { 
       if (!filteredComponent.contains(e.getPoint())) 
        super.mouseClicked(e); 
      } 
     }; 
    } 
} 

其他選項是覆蓋JTAbleHeader.columnAtPoint(Point point)並返回-1如果組合中包含的地步。