swing界面编程-国际化-中英文切换-简单示例供参考

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;


@SuppressWarnings("serial")
public class NewJFrame extends JFrame {
private static ResourceBundle rs = ResourceBundle.getBundle("language");
static JLabel labelUserName = new JLabel("用户名:");
static JLabel labelpwd = new JLabel("密码:");
static JComboBox cboLanguage;

public NewJFrame() {
JPanel contentPane = new JPanel(new FlowLayout(FlowLayout.CENTER,0,0));
this.setContentPane(contentPane);
contentPane.setLayout(new BorderLayout());
panelTop(contentPane);
onClick();
// 设置窗口显示的位置
position(this);
}
public static void main(String args[]) {
new NewJFrame();
}


/**
* 设置窗口位置
*/
public static void position(JFrame frame) {
final int WIDTH = 630;
final int HEIGHT = 350;
// 设置顶层容器类对象的关闭功能
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口大小
frame.setSize(WIDTH, HEIGHT);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - WIDTH) / 2;
int y = (height - HEIGHT) / 2;
// frame.pack();
// 设置窗口位置
frame.setLocation(x, y);
// 设置顶层容器类的可见性
frame.setVisible(true);
frame.setResizable(false);
}

/**
* 顶部的中英文下拉框

* @param frame
* @param panelComboBox
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void panelTop(JPanel frame) {
// 第一个容器 顶部的下拉框
JPanel panelComboBox = new JPanel(new GridLayout(1,5,20,0));
frame.add("North",panelComboBox);
panelComboBox.setBounds(150, 150, 400, 300);
//panelComboBox.setBorder(BorderFactory.createLineBorder(Color.BLUE));
String[] language = { "简体中文", "English" };
cboLanguage = new JComboBox(language);
labelUserName.setHorizontalAlignment(SwingConstants.CENTER);
JTextField tfUserName = new JTextField(10);
labelpwd.setHorizontalAlignment(SwingConstants.CENTER);
JTextField tfpwd = new JTextField(10);
panelComboBox.add(labelUserName);
panelComboBox.add(tfUserName);
panelComboBox.add(labelpwd);
panelComboBox.add(tfpwd);
panelComboBox.add(cboLanguage);
}
public static void onClick(){
cboLanguage.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
 int index = cboLanguage.getSelectedIndex();
if(index==0){
rs = ResourceBundle.getBundle("language",Locale.CHINA);
updateLabel();
}else{
rs = ResourceBundle.getBundle("language",Locale.ENGLISH);
updateLabel();
}
}
});
}
private static void updateLabel() {
labelUserName.setText(rs.getString("strLabelUserName"));
labelpwd.setText(rs.getString("strLabelPwd"));
}
/**

* 在src下创建文件    language_en.properties

* 添加内容
*  key:strLabelUserName   value:user name
*  key:strLabelPwd        value:password

*/

/**
* 在src下创建文件   language_zh_CN.properties
* 添加内容
*  key:strLabelUserName   value:用户名:
*  key:strLabelPwd        value:密码:

*/
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值