重识Java第十天打卡----JavaSwing遇到的一些问题

活动地址:CSDN21天学习挑战赛

一、中文乱码问题

1.组件乱码

描述说明

有可能使用错了组件,比如今天用列表框时,我就用了awt的LIst组件,结果,标题上的中文能正常显示,按钮上的中文却是方框,出现乱码。 如右所示:在这里插入图片描述

原因及解决

原因:因为所用组件是awt的,而awt对中文的支持不太好,且eclipse(or IDEA)不能很好的调用本地汉字库,所以导致这种情况的出现。
解决:

  • 打包成jar包再运行,就可以调用本地字库;
  • 若想直接在编译器通过,则需放弃awt组件,使用swing组件。如将Button改成JButton,List改为JList

二、绘制图像或消息时不显示

1.绘制图片无显示

描述说明

如绘制背景图片时,明明“看似”都对,但就是保错或窗体一片空白。像这样:在这里插入图片描述

原因及解决

可能的原因:

  • 跟绘制有关的类名写错了
public void paintComponent(Graphics g) {
                super.paintComponent(g);
                //下面这行是为了背景图片可以跟随窗口自行调整大小,可以自己设置成固定大小
                g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(),this);
            }

这个类很容易与 paintComponents类弄混,特别是代码提示时它们都在一起,一定要注意!

  • 图片路径写错了(报错空指针)
//下面是直接使用绝对路径获取图片
//imageIcon = new ImageIcon("D:\\Project\\ideaProject\\BlackHorseJavaWeb\\heima_jdbc\\src\\Schoolwork\\GoBang\\b1.png");

//下面则是使用url地址获取图片; 注意 ./ 后的是指当前类同级的文件,即是从当前类的父目录开始算起的
imageIcon = new ImageIcon(this.getClass().getResource("./b6.jpg"));
img = imageIcon.getImage();

一般有两种方式获取,一种是使用路径(此处我用的是绝对路径,相对路径总是失败_)获取图片;另一种则是使用url地址获取。两者不能混淆

  • 使用了空布局但没给组件加 setBounds( )

在空布局,所有组件or面板都要使用setBounds才能显示出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值