我有一个javax.swing.table.AbstractTableModel的子类,它定义了这样的表列标题:protected String[] columnNames = new String[] { "Column1", "Column2};
。如何从资源包本地化columnNames
?我想从.properties文件中读取列标题,而不是在我的代码中对它们进行硬编码。有没有更好的方法呢?
答案 0 :(得分:3)
您覆盖getColumnName()
以返回列名的本地化值。
例如:
private ResourceBundle res = ResourceBundle.getBundle("MyResource");
@Override
public String getColumnName( int column ) {
return res.getString(columnNames[column]);
}
答案 1 :(得分:0)
最简单的方法是修改columnNames的分配:
protected String[] columnNames = getColumnNames();
//...
private static String[] getColumnNames() {
return ResourceBundle.getBundle("AppResources").getString("headings").split(",");
}
AppResources(或AppResources_en,AppResources_fr_FR等)是一个扩展ResourceBundle并包含一个名为“headings”的键的类,它返回逗号分隔的标题列表。