我有一個有幾列的JTable。我想讓某些的列不可用。我該怎麼做?我被困在Java 1.4中,所以使用TableRowSorter不是一個選項,因爲它直到1.6才被引入。如何防止Java Swing JTable列在用戶單擊標頭時被排序?
回答
將JTable上的rowSorter設置爲null。見http://download.java.net/jdk7/archive/b123/docs/api/javax/swing/JTable.html#setRowSorter(javax.swing.RowSorter)
如果你想排序而不是其他,你必須實現一個監聽器。我用過這樣的東西:
table.getTableHeader().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int col= table.getTableHeader().columnAtPoint(e.getPoint());
// column number col has been clicked -- sort if necessary,
// discard the event if sorting is not desired.
//
}
});
小心可以拖放行的表;你可以用
table.getTableHeader().setReorderingAllowed(false);
這不工作,你只添加額外的邏輯,但你不阻止現有mouselisteners和排序邏輯可應用於......測試是這樣的: table.getTableHeader()addMouseListener將(新MouseAdapter(){ @Override public void mouseClicked(MouseEvent e){ return; } }); – ruben056
這並不妨礙現有的聽衆發射。但是,如果你使用的是BasicTableHeaderUI(正如我所期望的那樣),你可以設置ReRederingAllowed爲false(如圖所示),它將起作用。 – cneller
禁用此應用
RowSorter
期望欄(S)僅
(例如,僅pseudo_code,一切都在那裏硬編碼例如,必須覆蓋來自ColumnModel的列)
if (column >= 0 && column < getModelWrapper().getColumnCount()
&& isSortable(column)) {
與
if (column >= 0 && column <=1 /*getModelWrapper().getColumnCount()*/
&& isSortable(column)) {
在public void toggleSortOrder(int column) {
然後第二列是不可排序
- 如果不幫助你更好地幫助越早張貼SSCCE證明您的問題
- 1. JTable防止所有排序
- 2. 防止JTable在雙擊時自動排序
- 3. 排序箭頭jtable列標題
- 4. 如何防止renderHeaderCell()調用時列重新排序由用戶
- 5. 如何防止被禁用的JMenuItem被點擊時隱藏菜單?
- 6. Swing JTable按日期排序
- 7. 防止關閉Java swing應用程序
- 8. 如何防止asp:菜單被點擊時被解僱
- 9. 單擊錨標籤時可以防止onbeforeunload被調用嗎?
- 10. Java Swing - JTable中有多個列標題?
- 11. 從JTable排序列排除
- 12. 如何在TVirtualTreeView(TVirtualStringTree)頭被雙擊時隱藏排序符號
- 13. 如何防止點擊標題列
- 14. 如何防止用戶點擊時激活表單?
- 15. 如何防止「臨時頭被顯示」在angularjs ajax調用
- 16. Java JTable - 排序
- 17. 防止用戶終止Java程序?
- 18. 防止菜單在其子菜單被點擊時滾動
- 19. Java Swing:如何使用JTable工作?
- 20. 當輸入無效數據時,防止Java Swing JTable失去焦點
- 21. PyQt4,QTableWidget:當點擊水平標題時阻止行被排序
- 22. Java Swing - 使用定時器刷新jTable
- 23. 防止Google地圖標記被點擊
- 24. 防止用戶在淡出時單擊div
- 25. 如何在extjs中雙擊時防止單擊事件發生
- 26. Java Swing排列JInternalFrames
- 27. java swing JTable JProgressBar margin
- 28. 顯示JTable中頭圖標排序沒有排序機制
- 29. 被排序使用防止表的標題JQuery的可排序插件
- 30. 如何防止數據綁定datagridview的最後一行被點擊列標題排序?
如果JTable能夠自己排序,我相信你將能夠確定出。 – vels4j
你想只停止一列還是全部? – MadProgrammer