##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使用依赖 mysql mysql-connector-java 5.1.37 ####2.gson的使用 com.google.code.gson gson 2.8.2 ##创建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,显示的表情以表情简写表示 未完待续。。。。。