我正在製作一個使用arrayList作爲數據填充的JTable。我在arrayList中有兩組數據。一種用於一種類型的表格,另一種用於另一種類型的表格。是否有可能重載abstractTableModel上的getValueAt方法?
我所希望做的是超負荷的AbstractTableModel上的getValueAt方法,因此,它需要在哪個組數據我想要的參數。
這是可能的,或者我應該考慮一下這種不同的方式?
我正在製作一個使用arrayList作爲數據填充的JTable。我在arrayList中有兩組數據。一種用於一種類型的表格,另一種用於另一種類型的表格。是否有可能重載abstractTableModel上的getValueAt方法?
我所希望做的是超負荷的AbstractTableModel上的getValueAt方法,因此,它需要在哪個組數據我想要的參數。
這是可能的,或者我應該考慮一下這種不同的方式?
沒有人阻止你超載的方法。這只是JTable
代碼不會調用您的新方法。根據您的業務邏輯,您將不得不覆蓋常規的public Object getValueAt(int rowIndex, int columnIndex)
並從其中調用其他方法。
你可以這樣做,但問題是,在Swing組件不管是誰調用此方法目前不會叫oveloaded一個:)
它不會太多有用的。
從我的角度來看,你已經基本上2個選擇,因爲你需要在2種不同的表類型提出具體的數據:
然而,從我的角度來看,第一個將是一個推薦的方式。
接受的答案沒有錯,但也考慮第二個TableModel
,它與第一個給定的List
共享一個引用。一個JTable
可以通過簡單地調用setModel()
來顯示任一模型。
在此exmaple中,EnvDataModel
通過System.getenv()
獲得其數據。 A PropDataModel
可能通過System.getProperties()
獲取其數據。兩者共享訪問System
。
TableModel first = new EnvDataModel();
TableModel second = new PropDataModel();
JTable table = new JTable(fisrt);
...
table.setModel(second);