记录一个咸鱼大学生三个月的奋进生活026
复习Java(仿QQ聊天系统04头像功能原理)
在上一篇帖子中答应过大家今天跟大家讲一下 头像是如何添加以及显示,上下线变化的
其实很简单,每个头像就是一个一个的图片,将所有的头像图片放在各个文件夹中(这每个文件夹代表着不同功能调用时从哪个文件夹里取图片,例如:当用户上线时头像就是彩色的就从onimg的文件夹中找到该用户的头像,之后也会介绍每个功能对应的不同文件夹)
注意!这每个头像图片的名字都是一样的,无论在哪个文件夹中头像图片名字都要一样,只有所在的文件夹是不一样的
各个功能要访问的文件夹
正常尺寸的头像qqimg文件夹
这是存放所有正常尺寸头像的文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/24910fe46448d3fefb106d37c3bd7cf7.jpeg)
注册时选择头像的selectimg文件夹
这里面的头像图片是为了在注册页面选择头像时添加进下拉列表的,所以都比较小
![](https://i-blog.csdnimg.cn/blog_migrate/9c37b55c93abbf1c23a9e56eb058cefd.jpeg)
上线时的彩色头像的onimg文件夹
这是在主页面,也就是登录上去之后的好友列表页面用于给在线的好友挂头像的文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/650dff82f5cb069fdb82632b6c9c7a79.jpeg)
下线时的灰色头像的outimg文件夹
这是在主页面,也就是登录上去之后的好友列表页面用于给不在线的好友挂头像的文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/cdd2cbbcef52dfe0bf5a56f1ea32a1ab.jpeg)
大家注意看,相同头像的文件名都是一样的,这是要注意的,不然之后就会出错
数据库中存放头像信息的字段(pic)
前两篇帖子中都跟大家已经分享过该项目的数据库怎么配置了,其中有个字段叫pic,之前也提到过这就是存放头像的字段,其中存放的数据就是该头像图片的文件名(例如:wyh.jpg 是头像图片,那么数据库中存的头像信息就是wyh)
![](https://i-blog.csdnimg.cn/blog_migrate/48283b8bd75969f753180637b1f3d282.jpeg)
注册页面中选择头像功能(RegisterFrame)
添加头像的方法(addHead)
从头看到这的朋友们就知道,我们是通过在各个文件夹中的头像图片来添加头像的,所以我们这里就获取selectimg文件夹中的所有图片地址,然后添加进下拉列表
// 自动添加头像方法
private void addHead() {
File[] files = new File("./selectimg").listFiles(); // 使用File的listFiles()方法获得该文件夹下的所有文件
for (File file : files) {
// 遍历集合
this.imgComboBox.addItem(new ImageIcon(file.getAbsolutePath())); // 将每个图片文件的绝对定位通过getAbsolutePath()方法传入ImageIcon实例化并addItem给头像选择下拉列表
}
}
获取用户注册时选择的头像
我们获取用户选择的头像图片的地址,但是只要 \ 和 . 中间的内容(例如:selectimg\wyh.jpg 获取到的就是wyh这个内容),因为有了中间这块内容,就能在不同文件中获取头像图片(例如:获得上线时彩色的头像就是 onimg\wyh.jpg ),之后再将获取的地址中间的内容存进数据库就可以在各个页面通过中间的内容去获取不同状态时的头像