JTable列标题本地化

时间:2010-09-20 15:13:11

标签: java localization header jtable

我有一个javax.swing.table.AbstractTableModel的子类,它定义了这样的表列标题:protected String[] columnNames = new String[] { "Column1", "Column2};。如何从资源包本地化columnNames?我想从.properties文件中读取列标题,而不是在我的代码中对它们进行硬编码。有没有更好的方法呢?

2 个答案:

答案 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”的键的类,它返回逗号分隔的标题列表。