2010-09-20 73 views
0

我有一個javax.swing.table.AbstractTableModel的子類,它定義了表列標題,如下所示:protected String[] columnNames = new String[] { "Column1", "Column2};。如何從資源包本地化columnNames?我想從.properties文件讀取列標題,而不是在我的代碼中對它們進行硬編碼。有沒有更好的方法來做到這一點?JTable列標題本地化

回答

0

最簡單的方法是修改您的COLUMNNAMES分配:

protected String[] columnNames = getColumnNames(); 
//... 
private static String[] getColumnNames() { 
    return ResourceBundle.getBundle("AppResources").getString("headings").split(","); 
} 

凡AppResources(或AppResources_en,AppResources_fr_FR等)是擴展資源包和含有類鍵稱爲「標題」,它返回逗號分隔的標題列表。

+0

我修復了代碼中怪異的東西,但我認爲將多個字符串打包成單個字符串,然後在運行時將它們拆分是一個壞主意,因爲當您最終將這些內容發送給您的翻譯人員時,他們應該將逗號逗號爲他們自己的語言,所以你的分裂代碼將不再工作。你應該做的是將一個頭名稱放入每個字符串中。 – Trejkaz 2015-03-29 07:15:04

3

您重寫getColumnName()以返回列名稱的本地化值。

例如:

private ResourceBundle res = ResourceBundle.getBundle("MyResource"); 

@Override 
public String getColumnName(int column) { 
    return res.getString(columnNames[column]); 
}