2014-08-29 71 views
0

我有一個使用JTable的程序。 我給它一個RowSorter,這樣當你點擊列標題時,該表就按該列進行排序。JTable是否有排序事件?

我想捕獲用戶單擊列標題並輸出調試消息。 例如

System.out.println("You have sorted by first name ascending"); 
System.out.println("You have sorted by first name descending"); 
System.out.println("You have sorted by last name ascending"); 

所以我需要響應排序事件。 我在網上搜索的例子,但我找不到任何。

+1

的RowSorter的有自己的監聽器接口 – MadProgrammer 2014-08-29 10:50:39

+3

看看[RowSorter的#addRowSorterListener(http://docs.oracle.com/javase/7/docs/api/javax/ swing/RowSorter.html#addRowSorterListener(javax.swing.event.RowSorterListener)) – MadProgrammer 2014-08-29 10:52:10

+5

這個問題似乎是題外話題,因爲它可以通過查閱JavaDocs和相應的[教程](http://docs.oracle.com)輕鬆解答。 com/javase/tutorial/uiswing/components/table.html) – MadProgrammer 2014-08-29 10:53:49

回答

3

是的,但它不是JTable的一部分,而是RowSorter。您可以添加RowSorterListener

table.getRowSorter().addRowSorterListener(new RowSorterListener() { 
    @Override 
    public void sorterChanged(RowSorterEvent e) { 
     // Sorting changed 
    } 
});