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

发布于:2023-01-10 ⋅ 阅读:(438) ⋅ 点赞:(0)

活动地址: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才能显示出来

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到