Java:结合JavaSocket编程开发文本处理程序
生活随笔
收集整理的這篇文章主要介紹了
Java:结合JavaSocket编程开发文本处理程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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编程开发文本处理程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SHOW VARIABLES LIKE
- 下一篇: eclipse启动项目