Java swing JTextField中的英语或数字显示不正确,且不完整。
输入名字的abc不能完全显示,但是切换到中文输入法后输入中文的话会正常显示。
切换为英语输入法的输入也会正常显示。 这是怎么回事? 请向大神指示。
代码如下所示。
springlayoutlayout=newspringlayout (;
frame.getContentPane ().setlayout ) ) layout;
//面板
container pane=frame.get content pane (;
//输入法
//pane.getInputContext ().selectinputmethod (locale.us );
pane.setbackground(color.green );
//标题
JLabeltitle=newJLabel ("用户登录" )
//字体
fontfont=newfont(font.serif,Font.BOLD,24 );
title.setfont(font;
//设置颜色
title.setforeground(color.red;
pane.add(title;
//标题显示位置
layout.put constraint (springlayout.horizontal_center,title,0,spring layout.horizontal _ center,pane );
layout.put constraint (springlayout.north,title,20,spring layout.north,pane );
//用户名
JLabellname=newJLabel (“名称:”);
lname.set font (new font (font.serif,Font.PLAIN,16 );
pane.add(lname;
jtextfield ename=new jtextfield (“ABC”,15 );
ename.set font (new font (font.serif,Font.PLAIN,16 ) );
pane.add(ename;
layout.put constraint (springlayout.north,lname,100,spring layout.north,pane );
layout.put constraint (springlayout.west,lname,120,spring layout.west,pane );
layout.put constraint (springlayout.north,ename,100,spring layout.north,pane );
layout.put constraint (spring layout.west,ename,10,SpringLayout.EAST,lname );
//密码
JLabellpass=newJLabel (“密码:”
l pass.set font (new font (font.serif,Font.PLAIN,16 );
pane.add(Lpass );
jpasswordfieldepass=newjpasswordfield (15 );
epass.set font (new font (font.serif,Font.PLAIN,16 ) );
pane.add(epass;
layout.put constraint (springlayout.north,lpass,128,spring layout.north,pane );
layout.put constraint (springlayout.west,lpass,120,spring layout.west,pane );
layout.put constraint (springlayout.north,epass,128,spring layout.north,pane );
layout.put constraint (spring layout.west,epass,10,SpringLayout.EAST,lpass );
//按钮
JButtonblogin=newJButton (“登录”);
blog in.set font (new font (font.serif,Font.BOLD,16 ) );
JButtonbregist=newJButton ("注册" )
布雷格
ist.setFont(new Font(Font.SERIF,Font.BOLD,16));pane.add(blogin);
pane.add(bregist);
layout.putConstraint(SpringLayout.NORTH, blogin, 170, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, blogin, 150, SpringLayout.WEST, pane);
layout.putConstraint(SpringLayout.NORTH, bregist, 170, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, bregist, 20, SpringLayout.EAST, blogin);
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
SpringLayout layout =new SpringLayout();
JFrame frame =new JFrame();
frame.getContentPane().setLayout(layout);
// 面板
Container pane = frame.getContentPane();
// 输入法
//pane.getInputContext().selectInputMethod(Locale.US);
pane.setBackground(Color.GREEN);
// 标题
JLabel title =new JLabel("用户登录");
// 字体
Font font =new Font(Font.SERIF,Font.BOLD,24);
title.setFont(font);
// 设置颜色
title.setForeground(Color.red);
pane.add(title);
// 标题显示位置
layout.putConstraint(SpringLayout.HORIZONTAL_CENTER, title,0, SpringLayout.HORIZONTAL_CENTER, pane);
layout.putConstraint(SpringLayout.NORTH, title,20, SpringLayout.NORTH, pane);
// 用户名
JLabel lname =new JLabel("姓名:");
lname.setFont(new Font(Font.SERIF,Font.PLAIN,16));
pane.add(lname);
JTextField ename =new JTextField("abc",15);
ename.setFont(new Font(Font.SERIF,Font.PLAIN,16));
pane.add(ename);
layout.putConstraint(SpringLayout.NORTH, lname,100, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, lname,120, SpringLayout.WEST, pane);
layout.putConstraint(SpringLayout.NORTH, ename,100, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, ename,10, SpringLayout.EAST, lname);
// 密码
JLabel lpass =new JLabel("密码:");
lpass.setFont(new Font(Font.SERIF,Font.PLAIN,16));
pane.add(lpass);
JPasswordField epass =new JPasswordField(15);
epass.setFont(new Font(Font.SERIF,Font.PLAIN,16));
pane.add(epass);
layout.putConstraint(SpringLayout.NORTH, lpass,128, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, lpass,120, SpringLayout.WEST, pane);
layout.putConstraint(SpringLayout.NORTH, epass,128, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, epass,10, SpringLayout.EAST, lpass);
// 按钮
JButton blogin =new JButton("登录");
blogin.setFont(new Font(Font.SERIF,Font.BOLD,16));
JButton bregist =new JButton("注册");
bregist.setFont(new Font(Font.SERIF,Font.BOLD,16));
pane.add(blogin);
pane.add(bregist);
layout.putConstraint(SpringLayout.NORTH, blogin,170, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, blogin,150, SpringLayout.WEST, pane);
layout.putConstraint(SpringLayout.NORTH, bregist,170, SpringLayout.NORTH, pane);
layout.putConstraint(SpringLayout.WEST, bregist,20, SpringLayout.EAST, blogin);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
这是你的代码
如果您对CSDN论坛有意见和建议 请直接在本帖指教
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
seankaku
本版等级:
#3 得分:0回复于: 2014-11-22 15:16:37
哦,测试了一下,把系统输入法设置成 中文(简体)-美式键盘或其他英文输入发,则会 出现英文或数字无法正常显示,如果设置成QQ输入法或其他中文输入法,可以正常显示,如图: