操作系统:Windows7
JDK:6.0
注册一个Messagebox组件,如下MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK);
mb.setText(ResourceUtil.instance().getString("common.error"));
mb.setMessage(ResourceUtil.instance().getString("common.error.username.empty"));
mb.open();关于这个MessageBox弹出后,显示的按钮到底是"OK"还是"确定",是由操作系统的“控制面板”->“时钟、语言和区域”->“区域和语言”->“更改显示语言”->“键盘和语言”->选择“中文”或是“English”来确定的。
但是通过Code:Locale.setDefault(Locale.ENGLISH)进行控制则无效,我明明已经在程序运行的最开始设置了English,可弹出的按钮还是写“确定”,这让人很是恼火。
请问高手们,谁知道MessageBox到底是如何控制显示按钮的语言的?那我要怎样才能动态的对它做到国际化?

解决方案 »

  1.   

    这问题就这么难么?一个知道的都没有?自己顶下。
    本来以为是挺简单的问题,是我自己搞不定而已。结果是大家都搞不定,那这个SWT怎么怪怪的
      

  2.   

    有高人给了解答,用JFace的MessageDialog可以解决这个问题:MessageDialog dialog = new MessageDialog(getShell(), ResourceUtil.instance().getString("common.title"), null,ResourceUtil.instance().getString("common.error"), MessageDialog.ERROR, new String[]{ResourceUtil.instance().getString("OK")}, 0);  
    dialog.open();