swing 界面中文显示乱码

独自一人的昵称谁用了 2011-08-01 03:26:40

这个是程序运行的截图
我是在Ubuntu11.04终端下运行的,在eclipse下运行也一样
下面是源码,我感觉不是代码的问题

import java.awt.*;
import java.awt.event.*;

public class RmbConvert extends Frame
{
public RmbConvert()
{
initComponent();//面板初始化
}
private void initComponent()
{
setTitle("人民币大写转换");
setSize(345,216);

setLayout(new GridLayout(3,1));//设置为Grid布局
Panel panel1=new Panel();
panel1.setBackground(Color.ORANGE);
Panel panel2=new Panel();
panel2.setBackground(Color.ORANGE);
Panel panel3=new Panel();
panel3.setBackground(Color.ORANGE);

Label label1=new Label("原始金额");
label1.setFont(new Font("黑体",1,30));
TextField text1=new TextField(20);
panel1.add(label1);
panel1.add(text1);

Label label2=new Label("大写金额");
label2.setFont(new Font("黑体",1,30));
TextField text2=new TextField(20);
panel2.add(text2);
panel2.add(label2);

Button bt=new Button("确认转换");
panel3.add(bt);

add(panel1);
add(panel2);
add(panel3);
}
public static void main(String[] args)
{
new RmbConvert().setVisible(true);
}
}
...全文
604 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
主要问题是java自带的字体中没有中文字体,而且它也不会去调用linux下的的字体,所以导致中文字体显示不出来,复制一个中文字体到jdk目录下的fonts文件夹就行了!
江清清 2011-08-01
  • 打赏
  • 举报
回复
那是平台环境不一样 没事的。。。跑到windows上面就变好了
yktd26 2011-08-01
  • 打赏
  • 举报
回复
在eclipse看看这个源码文件是utf8编码么
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huntor 的回复:]

引用 1 楼 leehomwong 的回复:

是ubuntu的原因,在windows下没乱码~

不是 ubuntu的问题。
6u26 + ubuntu 8.04 一切正常。

P.S. 这个是 AWT,不是Swing。
[/Quote]
写错了~~~
huntor 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leehomwong 的回复:]

是ubuntu的原因,在windows下没乱码~
[/Quote]
不是 ubuntu的问题。
6u26 + ubuntu 8.04 一切正常。

P.S. 这个是 AWT,不是Swing。
24K純帥 2011-08-01
  • 打赏
  • 举报
回复
是ubuntu的原因,在windows下没乱码~
1,设置面板不可拖动变化 java.awt.Frame.setResizable(false); 2,设置一组单选RadioButton 先声明: ButtonGroup jButtonGroup = new ButtonGroup(); JRadioButton jRadioButton1 = new JRadioButton(); JRadioButton jRadioButton2 = new JRadioButton(); JRadioButton jRadioButton3 = new JRadioButton(); 后捆绑: jButtonGroup.add(jRadioButton1); jButtonGroup.add(jRadioButton2); jButtonGroup.add(jRadioButton3); 3,弹出一个提示框 JOptionPane.showMessageDialog(this,) 4,获取一个列表对象的总长度 getItemCount(); 5,判断一个列表对象中一个Item是否被选中 isIndexSelected(int index); 1,Jtable加到JScroll中,默认只实现了垂直滚动(VERTICAL),而水平滚动(Horizontal)没有实现,这时候会使得无论格子数量,总长度=界面宽度。 解决:jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 2,Swing常常显示中文乱码,对于使用了UIManager.getSystemLookAndFeelClassName() 的程序,可以采用如下方法; 解决:在UIManager.getSystemLookAndFeelClassName() 下方添加代码 java.util.Enumeration enum = UIManager.getDefaults().keys(); String str; while(enum.hasMoreElements()){ if((str = (String)enum.nextElement()).endsWith("font")){ //只要与字体相关 UIManager.put(str,new Font("宋体",0,12)); } } 3,改变菜单栏等大小 设置合适的字体 4,对于En_US编码的informix,JTable中文显示乱码 对于这类情况,JDBC在取出数据而未显示时,已经是乱码,解决方法: 在连接语句的最后,加上;NEWCODESET=gbk,8859-1,819 5, 1、JFrame在屏幕中居中显示,只须在主类的构造方法里面加上一句: setLocationRelativeTo(null); 2、若要让JDialog居中显示,可以加上一句: JDialogname.setLocationRelativeTo(null); setLocationRelativeTo()方法一定要JDialog的SetSize()方法或者是pack()的后面,

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧