2014-06-16 62 views
0

簡單的問題。在致電getColumn(Object identifier)之前,有什麼方法可以檢查JTable是否包含一列?檢查JTable是否包含標識符列

JTable table = ...; 
table.getColumn("header"); 

getColumn()拋出一個IllegalArgumentException如果標題不存在。那麼,捕捉異常是檢查列的唯一方法嗎?尋找hasColumn()doesColumnExist()isColumnValid()但是,唉,什麼也沒有。

+2

你可以使用'TableColumnModel'直接 – MadProgrammer

+0

@MadProgrammer,基於''的TableColumnModel'無法檢索列對象標識符「。 =/ – ryvantage

+0

是的,正如@MadProgrammer所說,你可以使用方法枚舉通過列檢查是否存在。您可以按索引獲取列,然後輕鬆比較名稱。只是有點想象力,你應該解決它。 –

回答

2

你可以簡單地將TableColumnModel的遍歷可用列,看看它是否包含可用列,例如...

JTable table = ...; 
Object identifier = ...; 
TableColumnModel model = table.getColumnModel(); 
boolean found = false; 
for (int index = 0; index < model.getColumnCount(); index++) { 
    if (model.getColumn(index).getIdentifier().equals(identifier)) { 
     found = true; 
     break; 
    }    
} 

例如......是的,我會寫入這個助手方法/類,以便您可以重用它。

您應該避免使用異常的邏輯控制器,因爲可能有許多原因的異常可能提出

+0

列可以從JTable視圖中刪除,僅討論關於JTable視圖中的事件 – mKorbel