1901010134 4 år sedan
förälder
incheckning
38d27e94be
1 ändrade filer med 90 tillägg och 0 borttagningar
  1. 90 0
      README.md

+ 90 - 0
README.md

@@ -0,0 +1,90 @@
+##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,显示的表情以表情简写表示
+ 
+未完待续。。。。。