基于JAVA的聊天APP(使用JavaFx构建美观的UI界面) 您所在的位置:网站首页 java制作手机app 基于JAVA的聊天APP(使用JavaFx构建美观的UI界面)

基于JAVA的聊天APP(使用JavaFx构建美观的UI界面)

2023-07-26 04:41| 来源: 网络整理| 查看: 265

    之前JAVA老师布置的大作业,自选标题,然后我选的是实现一个聊天软件,使用JAVAFX来做界面(跟SWING差不多,但是可以用CSS来美化界面,而且拖入式布局比较方便),实现的功能有登入注册,找回密码,更改头像,发送接收消息,查看好友资料,修改好友备注,好友是否在线的提示,消息的提示,气泡的大小自动改变,标为已读未读,清除聊天记录,删除好友,添加好友,搜索好友,好友备注,个人资料的修改查看,设置,聊天助手的提示,右键菜单等功能。运行结果如下:

(项目已上传至github,客户端:https://github.com/sundial-dreams/WeChatClient,服务端:https://github.com/sundial-dreams/WeChatServer,数据库的话也就三个表,可以看着下图建,然后将客户端代码的数据库连接部分修改一下,指向你的数据库)

登入:

 

注册:

 

忘记密码:

 

主界面:

 

 

 

 

 

 

 

 

 

好友资料:

 

 

添加好友:

 

个人资料:

 

修改个人资料:

 

头像:

 

好了,现在讲讲我的构建思路,由于界面比较多,使用我采用MVC的架构模式,包括控制模块(Controller),数据模块(Model),界面模块(View)

然后控制模块将数据和界面整合,对于数据模块,包括数据库的连接,消息的保存,好友列表的保存,登入信息的保存,数据库部分,我的个人资料包括九个属性,分别是account(账号),name(姓名),password(密码),age(年龄),sex(性别),head(头像),address(地址),label(个性标签),phone(电话号),background(主题),数据库表(使用mysql数据库)如下:

好友的话,用I_account(我的账号),Y_account(你的账号),remark(备注)来表示,数据库表如下:

然后还用了个登入表,来表示用户已登入,不可重复登入,退出时在清除掉改用户,数据库表如下:

然后就可以专门写个类来连接,操控数据库了,

 

package Model; import java.sql.*; /** * * 数据库控制类 * 化简数据库的操作 */ public class DatabaseModel { private String url = "jdbc:mysql://localhost:3306/wechat?useUnicode=true&characterEncoding=utf-8"; private final static String driver = "com.mysql.jdbc.Driver"; private String userName = "root"; private String password = ""; private Connection connection; private Statement statement;//静态查询 private PreparedStatement preparedStatement;//动态查询 public DatabaseModel() { } /* 链接数据库 */ public void connect(){ try { Class.forName(driver).newInstance(); connection = DriverManager.getConnection(url, userName, password); } catch (Exception e) { e.printStackTrace(); } } /** * * * 该方法用来执行Sql语句并返回结果集 适合需要返回结果集的查询语句 例如 execResult("select*from user where id = ? and name = ?","1","jack"); * 用问号占位 然后传入个String数组代表要问号的值 该方法返回个结果集 即 ResultSet * * @param Sql * @param data * @return * @throws SQLException */ public ResultSet execResult(String Sql, String... data) throws SQLException { preparedStatement = connection.prepareStatement(Sql); for (int i = 1; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有