Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要帮助使用一个资源包,在那里我可以更改java程序中的语言_Java_Swing_Internationalization - Fatal编程技术网

我需要帮助使用一个资源包,在那里我可以更改java程序中的语言

我需要帮助使用一个资源包,在那里我可以更改java程序中的语言,java,swing,internationalization,Java,Swing,Internationalization,问题: 在Eclipse中创建新项目 修改上一张幻灯片中的JFrame。添加列出“英语”和“法语”的JComboBox。选择法语选项时,使用资源包将英语JButton翻译为法语“Montrer tous les Locales”。JComboBox也应该国际化,当法语是选定的语言时,可以阅读“法语”和“英语” 代码: 导入java.awt.BorderLayout; 导入java.awt.Container; 导入java.awt.event.ActionEvent; 导入java.awt.ev

问题: 在Eclipse中创建新项目
修改上一张幻灯片中的JFrame。添加列出“英语”和“法语”的JComboBox。选择法语选项时,使用资源包将英语JButton翻译为法语“Montrer tous les Locales”。JComboBox也应该国际化,当法语是选定的语言时,可以阅读“法语”和“英语”

代码:

导入java.awt.BorderLayout;
导入java.awt.Container;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.Calendar;
导入java.util.Locale;
导入java.util.ResourceBundle;
导入javax.swing.JButton;
导入javax.swing.JComboBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JScrollPane;
导入javax.swing.JTextArea;
公共类Exercise2扩展JFrame实现ActionListener{
私人资源;
私有静态最终长serialVersionUID=1L;
按钮;
JFrame框架;
jtextta区;
JLabel标签;
JComboBox组合;
字符串[]数组;
Locale[]availableLocales=Calendar.getAvailableLocales();
公众锻炼2(){
Locale loc=new Locale(“de”,“de”);//在德国为德语创建Locale
getRes();
setRes(ResourceBundle.getBundle(“ProgramResource”,loc));//创建资源束
JLabel greetLabel=new JLabel(getRes().getString(“问候”);//获取问候语键值的值
JButton computeButton=newjbutton(getRes().getString(“computeButton”);//按钮键值
getContentPane().add(greetLabel);
getContentPane().add(computeButton,BorderLayout.SOUTH);
容器c=getContentPane();
JPanel p=新的JPanel();
字符串[]数组={“英语”、“法语”};
combo=新的JComboBox(数组);
label=newjlabel(getRes().getString(“问候”));
按钮=新的JButton(getRes().getString(“按钮”);
ta=新的JTextArea(10,12);
ta.setEditable(false);
按钮=新的JButton();
setText(“列出所有地区”);
addActionListener(这个);
JScrollPane输出=新的JScrollPane(组合);
p、 添加(按钮,BorderLayout.NORTH);
p、 添加(输出);
p、 添加(组合);
c、 加(p);
设置大小(300300);
setVisible(真);
}
已执行的公共无效操作(操作事件a){
//执行自动生成的方法存根
if(a.getActionCommand().equals(“列出所有区域设置”)){
for(int i=0;i
所以我不断地得到一个错误,说:

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name ProgramResource, locale de_DE
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:795)
    at Exercise2.<init>(Exercise2.java:42)
    at Exercise2.main(Exercise2.java:89)
线程“main”java.util.MissingResourceException中的异常:找不到基本名称ProgramResource、locale de_de的捆绑包 位于java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) 位于java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) 位于java.util.ResourceBundle.getBundle(ResourceBundle.java:795) 在练习2。(练习2.java:42) 在Exercise2.main(Exercise2.java:89)

我不知道这意味着什么,每次我更改某些内容时,它似乎都不起作用

您必须创建一个文本文件,其中包含诸如eg.button=france之类的文本,以及ResourceBundle之类的类:

import java.io.IOException;
import java.util.PropertyResourceBundle;


public class ProgramProperties_de extends PropertyResourceBundle {

  public ProgramProperties_de() throws IOException {
    super(ProgramProperties_de.class.getResourceAsStream("ProgramProperties_de.txt"));
  }
}
import java.io.IOException;
import java.util.PropertyResourceBundle;


public class ProgramProperties_de extends PropertyResourceBundle {

  public ProgramProperties_de() throws IOException {
    super(ProgramProperties_de.class.getResourceAsStream("ProgramProperties_de.txt"));
  }
}