Java:结合JavaSocket编程开发文本处理程序

  • 要求
  • 部分代码
  • 完整代码

要求

1、20万字以上长篇小说存到服务器中,格式自定,一般存储为文本文档。
2、该程序支持从服务器载入小说,对小说中的文本进行分析。
3、首先运行服务器。服务器运行之后,可以连接1个客户端。
4、运行客户端。用户能够输入昵称,确定,则连接到服务器。连接成功,即可出现功能界面。

客户端功能界面如下:
1、功能1:载入小说。能够选择服务器端的小说。
2、功能2:任意设置10个人姓名(可以预设置在客户端界面上),将这10个人在小说中的存在感进行排名,用柱状图表示。点击按钮,存在感排名的柱状图可以保存到服务器端。
3、每个人在小说中活跃的位置是不一样的。任意输入10人中的1人,显示他在小说中出现的密度,画出密度图。建议用颜色深浅表示密度。点击按钮,密度图可以保存到服务器端。
4、如果两人在相距较短的一段文字中出现,我们认为两人有关系,距离越短,关系越近;如果多次在较短篇幅出现,则关系更近。对这10个人,根据他们关系的紧密程度进行归类,并用图形形式直观表示。点击按钮,紧密程度归类的图像内容,可以保存到服务器端。

部分代码

package server;
import java.net.*;
import java.io.*;public class Server{private ServerSocket ss;private static Socket socket;public Server() {try {ss=new ServerSocket(9999);socket=ss.accept();}catch(Exception ex) {ex.printStackTrace();}}public static void main(String[] args) throws Exception{new Server();}
}
package client;
import java.net.*;public class Client{public static Socket socket;public static void main(String[] args) throws Exception{try {socket=new Socket("127.0.0.1",9999);new MyJFrame();}catch(Exception ex){ ex.printStackTrace();}}
}
package client;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class MyJFrame extends JFrame implements ActionListener{private JPanel jpl=new JPanel();;private JButton btConnect=new JButton("确定");private int function;private String name;private JTextField tfAcc1;public MyJFrame() {super("客户端");JLabel lblAcc=new JLabel("输入昵称:");JTextField tfAcc=new JTextField(10);jpl.add(lblAcc);jpl.add(tfAcc);this.add(jpl);this.add(btConnect,BorderLayout.SOUTH);btConnect.addActionListener(this);this.setLocation(1000,450);this.setSize(350,100);this.setVisible(true);function=0;}public void JFrame1() {JLabel jl=new JLabel("请选择小说");ButtonGroup bgSex=new ButtonGroup();JRadioButton rbTxt1=new JRadioButton("万历十五年",false);JRadioButton rbTxt2=new JRadioButton("明朝那些事儿",false);JRadioButton rbTxt3=new JRadioButton("三国演义",false);jpl.removeAll();jpl.repaint();this.setTitle("已成功连接服务器!");jpl.add(jl);bgSex.add(rbTxt1);bgSex.add(rbTxt2);bgSex.add(rbTxt3);jpl.add(rbTxt1);jpl.add(rbTxt2);jpl.add(rbTxt3);this.add(jpl);this.setLocation(1000,450);this.setSize(450,100);this.setVisible(true);function=1;}public void JFrame2() throws Exception{JLabel jl1=new JLabel("10位人物");JLabel jl2=new JLabel("朱元璋、朱棣、朱允炆、蓝玉、冯胜、刘基、李文忠、常遇春、方孝孺、杨士奇");JLabel jl3=new JLabel("点击确定生成人物存在感柱状图");jpl.removeAll();jpl.repaint();this.setTitle("功能2:人物存在感");jpl.add(jl1);jpl.add(jl2);jpl.add(jl3);this.add(jpl);this.setLocation(1000,450);this.setSize(500,150);this.setVisible(true);function=2;}public void JFrame3() throws Exception{JLabel jl1=new JLabel("已生成人物存在感柱状图");JLabel jl2=new JLabel("点击确定进入功能3");jpl.removeAll();jpl.repaint();jpl.add(jl1);jpl.add(jl2);this.add(jpl);this.setLocation(1000,450);this.setSize(300,100);this.setVisible(true);function=3;}public void JFrame4() throws Exception{JLabel jl1=new JLabel("10位");JLabel jl2=new JLabel("朱元璋、朱棣、朱允炆、蓝玉、冯胜、刘基、李文忠、常遇春、方孝孺、杨士奇");JLabel lblAcc=new JLabel("输入人物名:");tfAcc1=new JTextField(10);JLabel jl3=new JLabel("点击确定生成该人物出现密度图");jpl.removeAll();jpl.repaint();this.setTitle("功能3:人物出现密度");jpl.add(jl1);jpl.add(jl2);jpl.add(lblAcc);jpl.add(tfAcc1);jpl.add(jl3);this.add(jpl);this.setLocation(1000,450);this.setSize(500,150);this.setVisible(true);function=4 ;}public void JFrame5() throws Exception{JLabel jl1=new JLabel("已生成"+name+"密度图");JLabel jl2=new JLabel("点击确定进入功能4");jpl.removeAll();jpl.repaint();jpl.add(jl1);jpl.add(jl2);this.add(jpl);this.setLocation(1000,450);this.setSize(500,150);this.setVisible(true);function=5;}public void JFrame6() throws Exception{JLabel jl1=new JLabel("点击确定生产人物关系图");jpl.removeAll();jpl.repaint();this.setTitle("功能4:人物关系");jpl.add(jl1);this.add(jpl);this.setLocation(1000,450);this.setSize(300,100);this.setVisible(true);function=6;}public void actionPerformed(ActionEvent e){if(function==0){this.JFrame1();}else if(function==1) {try {Save.saveTxt(Client.socket);this.JFrame2();}catch(Exception ex) {}}else if(function==2) {try {Histogram his = new Histogram();his.setVisible(true);this.JFrame3();}catch(Exception ex) {}}else if(function==3) {try {Save.savaJpg1();this.JFrame4();}catch(Exception ex) {}}else if(function==4) {try {name=tfAcc1.getText();Density.name=name;Density dp=new Density();dp.setVisible(true);this.JFrame5();}catch(Exception ex) {}}else if(function==5) {try {Save.savaJpg2();this.JFrame6();}catch(Exception ex) {}}else if(function==6) {try {Relation ra=new Relation();ra.setVisible(true);Save.savaJpg3();function=7;}catch(Exception ex) {}}else if(function==7) {try {Save.savaJpg3();}catch(Exception ex) {}}}
}

完整代码

java实现文本处理程序

Java:结合JavaSocket编程开发文本处理程序相关推荐

  1. java可以用vs编程吗_vscode可以写java么_编程开发工具

    如何在ubuntu 18.04上安装 composer_编程开发工具 下面由composer​教程栏目给大家介绍在ubuntu 18.04上安装 composer的方法,希望对需要的朋友有所帮助!全局 ...

  2. 如何正确下载安装eclipse(java常用的编程开发软件)?

    如何下载安装eclipse? Java编程最好的集成开发工具就是IBM研发的eclipse软件,eclipse完全免费,是java开发人员的必备平台.刚刚发布的最新eclipse是Eclipse ID ...

  3. 用JavaSocket编程开发英语六级词汇学习对战游戏

    首先是游戏的客户端,其中包含的类和函数如下: 1.客户端的GamePanel主类 继承了Runnable,ActionListener,KeyListener接口. 其中的函数有: 初始化整型life ...

  4. JAVA 编程开发入门-张晨光-专题视频课程

    JAVA 编程开发入门-1466人已学习 课程介绍         Java是目前世界上流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言.这可以概括Java有着自己独特的优势 ...

  5. java开发 职业技能_java编程开发程序员需要具备哪些职业技能

    随着互联网的不断发展,java编程开发可以说是目前学习人数和应用范围非常多的一种编程语言了,而今天我们就一起来了解一下,java编程开发程序员需要具备哪些职业技能. 1.数据结构和算法分析 数据结构和 ...

  6. java vector编程_Java编程开发中向量(Vector)及其应用

    要学习Java编程开发中向量及其应用方面的知识就要先了解什么是向量,向量是如何声明及初始化的,下面就让IT培训网专家来给大家详细介绍下如何认识向量及其使用方法吧! 关于向量的介绍: 向量 vector ...

  7. java异步处理_Java编程开发好入门吗 消息队列的用途有哪些

    Java编程开发好入门吗?消息队列的用途有哪些?消息队列是指能够提供消息排队消费功能的软件程序,是消息队列中间件的一部分.消息队列中间件是分布式系统中重要的组件.接下来就给大家讲解消息队列的优势.类型 ...

  8. java 静态代码块有什么用,java编程开发静态代码块的使用方法都有哪些

    代码块是程序员在学习java编程开发的时候会接触到的一个代码,而今天我们就通过案例分析来了解一下,java编程开发静态代码块的使用方法都有哪些. (一)java静态代码块静态方法区别 一般情况下,如果 ...

  9. Java中文编程开发,让Java编写更加容易

    Java中文编程开发,让Java编写更加容易 目录 创建Java项目 创建类 编写方法 调用方法 Tips:文件必须以UTF-8格式保存才能够运行 1.创建Java项目 项目创建完成后,创建一个资源包 ...

  10. 第五天 App编程开发【跟着大磨马学IT编程(安卓java)】

    第五天 App编程开发[跟着大磨马学IT编程(安卓java)]文档链接: http://note.youdao.com/share/?id=c2804297dd72ac6d818c3f1baa232b ...

最新文章

  1. LeetCode 159. Longest Substring with At Most Two Distinct Characters --Java,C++,Python解法
  2. IBM Java多线程 - 3.无处不在的线程
  3. 2021-05-08 docker  拷贝东西到镜像,和拷贝到宿主机
  4. 一致性哈希算法在分布式缓存中的应用
  5. Java实现string转byte
  6. Flink SQL Client讀取csv中的數據(轉載+總結)
  7. java仿QQ2.0版(一直忘了更)
  8. c语言10的10万次方,在c语言编程中 10的n次方应该怎么表达
  9. JAVA程序打包为EXE
  10. drive翻译成中文_drive是什么意思_drive翻译_读音_用法_翻译
  11. 我在小公司,当了五年的前端切图仔
  12. 挪威议会邮件系统遭遇攻击,电子邮件安全该如何保障?
  13. FH162儿童电子液晶手写板方案芯片开发
  14. 03-word 中插入图片和表格
  15. http-server
  16. 如何防止网站被黑客入侵,避免网站被黑的防御方法
  17. window的onload()的使用
  18. VR全景拍摄时我们应该注意哪些技巧?
  19. 通过两点经纬度信息 计算两点距离(C#语言)
  20. idea2018.3 无需注册码破解,完美使用100年

热门文章

  1. js读取服务器json文件,原生js读取json文件
  2. 《概率统计简明教程》
  3. 2022年五一建模比赛A题#五一建模
  4. chrome 迅雷下载 支持插件, 让chrome支持迅雷
  5. Vue将汉字转为拼音,取出首字母
  6. pmp第六版一到三章笔记
  7. 基于Matlab绘制演化博弈主体的演化轨迹
  8. 英雄联盟LOL静态HTML网页制作模板DⅣ+CSS学生网页作品代码游戏题材大学生网页设计作业下载
  9. Python解微分方程(验证数学建模第五版火箭发射模型)
  10. 认知无线电网络中的频谱切换