JavaFX的ResourceBundle使用

使用JavaFX开发PC客户端,可以做到国际化,启动的时候可以设置本地的环境的语言类型。

(1)弹窗的国际化

在工具使用的过程中,比如登录失败要弹窗提示,这些信息国际化,通过我下面的这个工具类,传入key值就可以获取resource/language目录下的资源文件

JavaFX的ResourceBundle使用_第1张图片


获取ResourceBoundle中的中文。

JavaFX的ResourceBundle使用_第2张图片

获取ResourceBoundle中的英文。

JavaFX的ResourceBundle使用_第3张图片

package com.nii.desktop.util.ui;

import com.nii.desktop.type.CommonConstant;

import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 * Created by wzj on 2016/12/28.
 */
public final class ResourceBundleUtil
{
    /**
     * language 资源
     */
    private static final ResourceBundle resource;

    static
    {
       
        resource = ResourceBundle.getBundle("language.message", Locale.ENGLISH);
    }

    /**
     * 私有构造函数
     */
    private ResourceBundleUtil()
    {

    }

    /**
     * Gets a string from the ResourceBundles.
     * 
Convenience method to save casting. * * @param key the key of the properties. * @return the value of the property. Return the key if the value is not found. */ public static String getStringValue(String key) { try { return resource.getString(key); } catch (MissingResourceException e) { return CommonConstant.NO_RESOURCE_DEFINE; } } /** * Gets the integer from the properties. * * @param key the key of the property. * * @return the value of the key. return -1 if the value is not found. */ public static Integer getIntegerValue(String key) { try { return Integer.valueOf(resource.getString(key)); } catch (MissingResourceException e) { return new Integer(-1); } } }

(2)FXML文件的国际化

在加载获取界面Pane的时候,指定FXML对应的ResourceBoundle

JavaFX的ResourceBundle使用_第4张图片


在FXML布局文件中,使用,login.userName和login.password就是在资源文件中定义的Key

JavaFX的ResourceBundle使用_第5张图片


最终效果如下:

JavaFX的ResourceBundle使用_第6张图片

JavaFX的ResourceBundle使用_第7张图片


(3)程序启动指定语言环境

 
  
Locale.setDefault(Locale.ENGLISH); //指定为英文
Locale.setDefault(Locale.CHINA); //指定为中文

你可能感兴趣的:(04.JavaFX)