各位大侠!!
问题描述: 做一个多语言Demo, 我如何通过一个Combobox切换显示语言,是通过监听Locale变化吗? 如何做??

解决方案 »

  1.   

    对用XML来实现比较好。如果你想用resource bundle也可以,struts中就是用的后者。但是在GUI程序中使用这种方法,由于ResourceBundle 实例一旦被装入,将被以性能优化的名义进行高速缓存;这一高速缓存在程序运行期间从不会被更新,并且Java也没给我们提供操作该高速缓存的正式方法。那么,当我们重新设置软件的界面语言时,程序并不能直接切换语言显示,而是需要重新启动程序。
      

  2.   

    感谢上面两位朋友的回答, 我想可能是我没表态清楚.
    我是想要怎样监听Locale的变化,而不是用什么方式去实现.我现在有一个多语言的Demo,启动时可以跟系统Locale去实实本地化,但我想在运行过程中让用户去选择自己喜欢的语言.变更Locale后立即更新界面语言而不用重新启动.在网上看了有些朋友是通过自己编循环的方式实现的,是否有更简单的方法?因为这种方式比较呆板,也不灵活,请高手指教.谢了!
      

  3.   

    不知楼主问题解决没有,我现在也是这个问题,我用的是属性文件,可是在监听了菜单项选择语言后设置了相应的Locale,再次启动还是没有什么用,不知道什么原因。对了,我用的是SWT做的GUI。
      

  4.   

    我的问题已经解决了,我在监听到这个事件后把这个语言选项的值写入文件 ,在初始化界面时读取文件就行了,如果没有读到就用默认值就OK了。更好的办法是用XML文件来存储这些个初始化需要的信息,包括语言还有数据库设置等 相关信息。
      

  5.   

    楼上的,能不能把代码发上来看看??或者发到我邮箱[email protected],我也正好碰到这问题,谢谢!!
      

  6.   

    to hiuiuf():
    读取:
    Porperties prop = new Properties();
    prop.loadFromFile(new FileInputStream("setting.properties"));
    设置Locale:
    Locale.setDefault(new Locale(prop.getProperties("Locale")));
    保存:
    prop.store(...);