有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在运行时更改java swing中的语言

我想知道在java中是否有可能重新加载swing应用程序,以便设置语言环境。我正在从事一个swing应用程序项目,其中使用了5种以上的语言,我已经为每种语言创建了属性文件。每当用户从菜单中选择新语言时,我的应用程序都必须重新启动以更改所选语言。我完全被困在这里,不知道如何用我加载的vm参数和新语言重新启动swing应用程序

作为参考,这里是一个网站,它与我所期望的有相同的要求。 http://teravoice.com/

网页加载后,选择下载jnlp的链接,一旦应用程序打开,请使用任何名称登录,并在文件菜单中找到包含12种语言的子菜单“语言”。当我点击一种新语言时,应用程序会使用新语言和用户数据(即vm选项)重新启动

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    通过使用ResourceBundle and Locale有两种可能的简单方法

    1)从本机操作系统获取Locale

    ResourceBundle rb = ResourceBundle.getBundle(
           "com.MyPackage.Properties", Locale.getDefault());
    
    frameTitle = (rb.getString("MyFrame.Title")); //myFrame.setTitle("frameTitle");
    trayTitle = (rb.getString("MyFrame.TrayTitle"));
    exitTitle = (rb.getString("MyFrame.Exit"));
    newInfoTitle = (rb.getString("MyFrame.NewInfo"));
    sendTitle = (rb.getString("MyFrame.Send"));
    

    2)在运行时设置Locale,例如,在JComboBox中选择Item,然后您必须刷新(最好创建分离的方法、void或class)所有JC组件或方法,所有更改必须在Event Dispatch Thread上完成

    3)一些examples about I18

    4)我是IDE用户,对于区域设置,我使用属性文件的内置编辑器