|
4 éve | |
---|---|---|
src | 4 éve | |
target | 4 éve | |
README.md | 4 éve | |
WebChat.iml | 4 éve | |
pom.xml | 4 éve |
##javaFX运行环境 #####JDK1.8版本,安装javafx #####开发工具:IDEA
从Java7u6开始,JDK(Java开发工具包)包括了JavaFX库。
因此,要运行JavaFX应用程序,您只需要在系统中安装Java8,使用其他版本JDK还需要额外导入jfxrt.jar等包。
另外,IntelliJIDEA也为JavaFX提供了支持,在使用前需要进行相应配置。
在IDEA中,打开File-->settings-->Languages&Frameworks-->javaFX
在选着安装好的JavaFX Scene Builder 2.0.exe(我安装的是版本2)
##基本响应流程概述 #####Client->Server
请求注册(已注册用户请求登录),请求登录状态
聊天命令分为单人和多人群聊
#####Server->Client
返回登录|注册成功反馈
返回登录|注册失败反馈,及失败原因(用户已经注册|用户尚未注册|密码错误|服务器连接失败等...)
每个用户登录广播用户集
提取数据仓发送消息给指定用户
广播信息
##两个依赖 ####1.mysql使用依赖
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
####2.gson的使用
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
##创建fxml文件 ####1.可以采用javaFXSceneBuilder进行可视化操作 ####2.自己创建,添加样式功能。
注:fxml资源文件一定要绑定其对应的View控制器类,可以在SceneBuilder中的左下角
绑定界面的Controller进行指定,也可以在fxml的源码中修改fx:controller...进行绑定。
####(1)LoginView.fxml(登陆界面)
采用GridPane的布局,GridPane是JavaFX 2.0中功能最强大,最灵活的布局窗格。
它在由行和列组成的灵活网格中布置其子项,与Swing的GridBagLayout或HTML的表格模型非常相似。
密码输入用PasswordField属性,保证隐秘性
####(2)MainView.fxml(聊天界面)
采用GridPane的布局,主要由两种组件搭建HBOX和VBOX
HBox中的H是Horizontal的首字母,意为水平的。HBox即水平的布局,将组件按水平方向依次排列。
VBox中的V是Vertical的首字母,意为垂直的。VBox即垂直的布局,将组件按竖直方向依次排列。
####(3)EmojiSelectorUI.fxml(表情包界面)
VBOX布局
##客户端MainApp ####整体基本架构为MVC
model层通过control进行数据交互同时control层进行login和chatroom界面切换控制。
基本界面切换
参考JavaFX - 实现管理多个Stage窗口及源码解析
1.由stageController进行界面构建和跳转
2.将资源文件(fxml文件)和ID写成静态,分别是每个界面的ID和资源文件的相对路径
3.在start()方法中对StageController控制器进行实例化并用StageController对象加载fxml资源文件。
##服务端Server
Master-Worker模式是常用的并行模式之一,它的核心思想是:系统由两类进程协同工作,即Master进程和Worker进程,
Master负责接收和分配任务,Wroker负责处理子任务。当各个Worker进程将子任务处理完成后,将结果返回给Master进程,
由Master进程进行汇总,从而得到最终的结果.
##舞台控制器Stage ####第一步:创建一个StageController控制器
StageController控制器主要是加载fxml资源文件和对应的View控制器、生成Stage对象
以及对Stage对象进行管理,因此该StageController控制器对象也需要被注入到每个fxml的View控制器中。
控制器在对fxml资源文件加载的时候使用的是Pane这个容器作为最基底的容器。
####第二步:将StageController控制器注入(注册)到每个界面的控制器中
在这里创建一个ControlledStage.java接口,所有的View控制器都去实现这个接口即可
PS:此方法参照CSDN作者老猫,本文连接:http://blog.csdn.net/nthack5730/article/details/51901593
##表情包
emjio表情包
javafx的textArea不支持 文字加图片,在java分fx中textflow可以存放子组件,
所以显示界面使用textflow,输入界面使用textArea,显示的表情以表情简写表示
未完待续。。。。。