我有JTable的排序功能阻塞問題;這使得空閒時間開源項目的開發時間延長了4個月。希望在這裏指出正確的方向。JTable與jgoodies排序問題
語境:我正在延長ps3mediaserver的功能添加到媒體庫與pms-mlx。媒體服務器的用戶界面已經使用swing完成。
問題:單擊JTable中的列標題時,看似隨機的列將被排序,而不是被單擊的列。
當前實現:這裏的不同組件和類被用於執行說明:
- ETable:作爲備用行的顏色不是默認JTable中的支持,我已經關掉擴展JTable的ETable。來源來自here
- FileDisplayTable:這是創建表的類。在init()方法中,使用'table.setAutoCreateRowSorter(true)'啓用排序
- FileDisplayTableCellRenderer:存在始終對準左邊
- FileDisplayTableColumnModel單元格的內容:是否內部類型和列名之間的一些映射
- FileDisplayTableAdapter:這個類實現com.jgoodies.binding.adapter.AbstractTableAdapter與對象映射表列。
可能的解決方案:
- 最好,我想保持目前的實現,並找出如何正確排序,但我懷疑有人可以幫助我與!?另外他們是我不得不添加的一些代碼,因爲奇怪的行爲;他們在代碼中註釋
- 另一種選擇是將JTable完全更改爲另一個控件。我做了一些研究,但沒有找到我期望的解決方案。的約束是
- 它必須在擺動UI
- 優選它應該支持的數據綁定
- 支持備用行的顏色是可嵌入
- 行排序
在某些時候它將可以打開編輯對話框,在該對話框中必須檢索行的內容,可以編輯並且在保存時必須更新該行。
在重做整個事情之前,我想確保組件能夠處理我想要處理的所有事情。
我更習慣於在Visual Studio中使用.NET創建GUI。這是完全不同的,而且在擺動方面做得更加困難。請告訴我,我錯:)
[編輯]如果有人願意重現該問題,要麼得到源或二進制文件,啓動應用程序,瀏覽媒體庫選項卡。在Genral部分通過添加一些視頻文件導入一些視頻。轉到庫部分,單擊應用刷新列表並嘗試對錶格進行排序。
導入視頻重現_your_問題?你一定是在開玩笑:-)反過來說:你把它分解成能夠證明問題的最小單位,然後有一個現實的可能性來獲得幫助。在你的鞋,我會爲TableModel實現啓動:追查/你如何讓無效columnIndices - 將賭注押在作爲的原因之一(!德國)啤酒...... – kleopatra
不,不開玩笑:P(是不是真的期待任何人都能走得那麼遠;)我花了好幾個小時試圖弄清楚這件事情沒有成功,我無法在這裏描述所有的測試。我不得不繞過一些其他奇怪的行爲,因爲視圖的列與我的模型不一致,並且當例如事件被觸發時。刪除一列並不像我期望的那樣行事。這就是爲什麼我希望有人能夠指向我想要的組件並替換JTable。 – Philippe
在找到代碼中的基礎錯誤之前,您沒有太多的選擇來進行挖掘。沒有,即使通過某種魔法,它開始看起來像在某個時刻工作,但它只會意外地這樣做,不保證它會堅持下去。祝你好運! – kleopatra