java 大作业 题目_Java终极大作业报告

《Java终极大作业报告》由会员分享,可在线阅读,更多相关《Java终极大作业报告(56页珍藏版)》请在人人文库网上搜索。

1、Java语言程序设计展示报告学 院 专 业 组长信息 组员信息1 组员信息2 组员信息3 指导教师 日 期 年 月 日目录第一章选题概述1第二章完成情况2第三章成果展示3一、登陆注册界面展示31、效果截图32、核心代码4二、客户端界面展示51、效果截图82、核心代码8三、服务端界面展示41、效果截图32、核心代码3四、数据库直连和文件线程10第四章总结与感受12第一章 选题概述在一学期的Java课程学习之后,我们对Java语言有了一定的认识与了解。在此基础上我们选择了题目一作为本组的目标,题目的相关要求如下(初期拟完成目标):设计编程实现桌面文档共享与管理系统(100%)实现以下功能-1. 能。

2、够实现文件的下载与上传(客户端与服务器端)2. 能够通过安全认证与别人分享文档3. 能形成“圈子”,对朋友或这陌生人设置不同的安全级别4. 能够共享桌面与聊天5. 必须用数据库存储信息6. 必须用extends 和 implements 关键字7. 必须用this关键字8. 必须用图形用户界面9. 界面设计与功能不限,充分发挥题目一比较有挑战性,题目中的要求几乎涉及到了我们学过的所有知识,除此之外还需要我们课外学习一些课堂额外的知识,比如数据库的创建于连接。由组长XXX1负责整合所学内容与指挥,组员查阅资料并编写程序,再和组长讨论并完成各自的模块设计。我们设计了如下的流程图:图1-1 流程图第。

3、二章 完成情况经过将近一个月左右的编程设计,我们实现的桌面文档共享与管理系统(90%)实现了以下功能-1.能够实现文件的上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够聊天并截取屏幕信息5.采用了数据库存储信息6.采用了extends 和 implements 关键字7.采用了this关键字8.采用了图形用户界面程序的编程设计图2-1 类成果展示图其中jp.java功能为截图;khd.java功能为建立客户端;sc.java功能为文件上传线程;zc.java功能为实现用户登录;Main功能为总体调用;fwq.java功能为。

4、建立服务端;User.java功能为实现与数据库的连接(直连)。第三章 成果展示一、登录注册界面展示1.效果截图经过我们的编程设计,实现了用户的登录,其运行效果如图3-1所示、登陆成功效果如图3-2示、登陆未成功效果如图3-3示。注册效果如图3-4所示,注册后数据库数据改变效果如图3-5示图3-1 登陆界面运行成功效果图图3-2 登陆成功效果图图3-3 登陆未成功效果图图3-4 注册界面效果图2.核心代码相关核心代码及其详细注解如下:package ceshi;import java.awt.*;import java.awt.event.*;import java.io.PrintWrite。

5、r;import javax.swing.*;public class zc extends JFrameUser login_user=new User();JTextField j1=new JTextField();/用户名的文本框JPasswordField jpw=new JPasswordField();/密码的文本框JButton jb1=new JButton(登录);JButton jb2=new JButton(注册);private Container a = getContentPane();public zc()setLayout(null);setVisible(t。

6、rue);setBounds(600,320,400,160);setTitle(登录窗口);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/控制窗口关闭/添加登录和注册的按钮jb1.setBounds(270,10,60,30);j1.setBounds(100,15,100,20);jpw.setBounds(100,60,100,20);a.add(j1);a.add(jpw);jb1.addActionListener(new ActionListener()public void actionPerformed(Act。

7、ionEvent e)String name1=j1.getText();String password1=new String(jpw.getPassword();String password2=login_user.getPWD(name1);String security1=login_user.getSCT(name1);if(password2.trim().equals(password1.trim()if(security1.trim().equals(管理员)/System.out.println(3 + login_user.getPWD(name1);setVisible。

8、(false);JOptionPane.showMessageDialog(null, 恭喜您登陆成功!, 消息, JOptionPane.INFORMATION_MESSAGE);new fwq();elsesetVisible(false);JOptionPane.showMessageDialog(null, 恭喜您登陆成功!, 消息, JOptionPane.INFORMATION_MESSAGE);new khd();elseJOptionPane.showMessageDialog(null, 对不起您的用户名或密码错误!, 错误,JOptionPane.ERROR_MESSAGE。

9、););jb2.setBounds(270,55,60,30);a.add(jb1);a.add(jb2);jb2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Register c=new Register(););/添加用户名和密码的标签JLabel jl1=new JLabel(用户名);jl1.setBounds(40,10,60,30);JLabel jl2=new JLabel(密 码);jl2.setBounds(40,55,60,30);a.add(jl1);a.a。

10、dd(jl2);public static void main(String argsp)new zc();class Register extends JFrameUser Login_user = new User();JTextField jt1=new JTextField();JTextField jt2=new JTextField();JTextField jt3=new JTextField();JTextField jt4=new JTextField();JTextField jt5=new JTextField();JButton jb1=new JButton(注册);。

11、JButton jb2=new JButton(退出);JLabel jl1=new JLabel(用户名);JLabel jl2=new JLabel(密 码);JLabel jl3=new JLabel(重新输入密码);JLabel jl4=new JLabel(邮 箱);JLabel jl5=new JLabel(身 份);JPanel jp=new JPanel();private Container a = getContentPane();public Register()setLayout(null);setVisible(true);setTitle(注册);setBounds。

12、(750,320,300,250);jb1.setBounds(10,150,60,30);jb2.setBounds(140,150,60,30);jl1.setBounds(10,10,100,30);jl2.setBounds(10,35,100,30);jl3.setBounds(10,60,100,30);jl4.setBounds(10,85,100,30);jl5.setBounds(10,110,100,30);jt1.setBounds(120,15,130,20);jt2.setBounds(120,40,130,20);jt3.setBounds(120,65,130,2。

13、0);jt4.setBounds(120,90,130,20);jt5.setBounds(120,115,130,20);a.add(jb1);a.add(jb2);a.add(jl1);a.add(jl2);a.add(jl3);a.add(jl4);a.add(jl5);a.add(jt1);a.add(jt2);a.add(jt3);a.add(jt4);a.add(jt5);jb1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String name1=jt1.getTe。

14、xt();String password1=new String(jt2.getText();String rpassword1=new String(jt3.getText();String gender1=new String(jt4.getText();String security1=new String(jt5.getText();if (Login_user.jiancha(name1)=1)JOptionPane.showMessageDialog(null, 对不起您的用户名已被注册!, 错误,JOptionPane.ERROR_MESSAGE);return;else if(。

15、name1.length()10)JOptionPane.showMessageDialog(null,用户名不能大于10位);return;else if(password1.length() onLineUsers = new HashMap();/ 所有在线用户 private boolean isConnected = false; private Container a = getContentPane();public khd()setLayout(null);setVisible(true);setTitle(聊天室);setBounds(600,150,460,600);jl1。

16、.setBounds(10,50,100,20);JScrollPane js1 = new JScrollPane(jt1);jt1.setEditable(false);js1.setBounds(10,80,420,280);a.add(js1);a.add(jl1);jl2.setBounds(10,420,100,20);JScrollPane js2 = new JScrollPane(jt2);js2.setBounds(10,440,420, 80);a.add(js2);a.add(jl2);jb1.setBounds(250,370,60,30);a.add(jb1);jb。

17、3.setBounds(310,370,60,30);a.add(jb3);jb4.setBounds(370,370,60,30);a.add(jb4);jb5.setBounds(190,370,60,30);a.add(jb5);jb6.setBounds(10,370,60,30);a.add(jb6);jb2.setBounds(70,370,60,30);a.add(jb2);jt6.setBounds(130,370,60,30);a.add(jt6);jt3.setBounds(60,10,100,20);a.add(jt3);jl3.setBounds(10,10,100,2。

18、0);a.add(jl3);jt4.setBounds(200,10,100, 20);a.add(jt4);jl4.setBounds(168,10, 100, 20);a.add(jl4);jt5.setBounds(330,10,100, 20);a.add(jt5);jl5.setBounds(300,10, 100, 20);a.add(jl5);/按钮控制jb1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) send(); );jb2.addActionLis。

19、tener(new ActionListener()public void actionPerformed(ActionEvent e)int n = j1.showOpenDialog(null);String filename = j1.getSelectedFile().toString();if (n = JFileChooser.APPROVE_OPTION) jt6.setText(filename);fileFlag = new File(filename);file = j1.getSelectedFile();System.out.println(+file););jb3.a。

20、ddActionListener(new ActionListener() public void actionPerformed(ActionEvent e) int port; if (isConnected) JOptionPane.showMessageDialog(null, 已处于连接上状态,不要重复连接!, 错误, JOptionPane.ERROR_MESSAGE); return; try try port = Integer.parseInt(jt4.getText().trim(); catch (NumberFormatException e2) throw new E。

21、xception(端口号不符合要求!端口为整数!); String hostIp = jt3.getText().trim(); String name= jt5.getText().trim(); if (name.equals() | hostIp.equals() throw new Exception(姓名、服务器IP不能为空!); boolean flag = connectServer(port, hostIp, name); if (flag = false) throw new Exception(与服务器连接失败!); setTitle(name); JOptionPane.。

22、showMessageDialog(null, 成功连接!); catch (Exception exc) JOptionPane.showMessageDialog(null, exc.getMessage(), 错误, JOptionPane.ERROR_MESSAGE); ); jb4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (!isConnected) JOptionPane.showMessageDialog(null, 已处于断开状态,不要重复断开!, 。

23、错误, JOptionPane.ERROR_MESSAGE); return; try boolean flag = closeConnection();/ 断开连接 if (flag = false) throw new Exception(断开连接发生异常!); JOptionPane.showMessageDialog(null, 成功断开!); catch (Exception exc) JOptionPane.showMessageDialog(null, exc.getMessage(), 错误, JOptionPane.ERROR_MESSAGE); ); jb6.addActi。

24、onListener(new ActionListener() public void actionPerformed(ActionEvent arg0) new jp();RectD rd = new RectD();GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();gd.setFullScreenWindow(rd); );public synchronized boolean closeConnection() try sendMessage(CLO。

25、SE);/ 发送断开连接命令给服务器 messageThread.stop();/ 停止接受消息线程 / 释放资源 if (reader != null) reader.close(); if (writer != null) writer.close(); if (socket != null) socket.close(); isConnected = false; return true; catch (IOException e1) e1.printStackTrace(); isConnected = true; return false; public void sendMessa。

26、ge(String message) writer.println(message); writer.flush(); public void send() if (!isConnected) JOptionPane.showMessageDialog(null, 还没有连接服务器,无法发送消息!, 错误, JOptionPane.ERROR_MESSAGE); return; String message = jt2.getText().trim(); if (message = null | message.equals() JOptionPane.showMessageDialog(nu。

27、ll, 消息不能为空!, 错误, JOptionPane.ERROR_MESSAGE); return; sendMessage(getTitle() + + ALL + + message); jt2.setText(null); public static void main(String args)new khd();class MessageThread extends Thread private BufferedReader reader; private JTextArea textArea; / 接收消息线程的构造方法 public MessageThread(Buffered。

28、Reader reader, JTextArea textArea) this.reader = reader; this.textArea = textArea; / 被动的关闭连接 public synchronized void closeCon() throws Exception / 清空用户列表 / listModel.removeAllElements(); / 被动的关闭连接释放资源 if (reader != null) reader.close(); if (writer != null) writer.close(); if (socket != null) socket。

29、.close(); isConnected = false;/ 修改状态为断开 public void run() String message = ; while (true) try message = reader.readLine(); StringTokenizer stringTokenizer = new StringTokenizer( message, /); String command = stringTokenizer.nextToken();/ 命令 if (command.equals(CLOSE)/ 服务器已关闭命令 textArea.append(服务器已关闭!。

30、n); closeCon();/ 被动的关闭连接 return;/ 结束线程 else if (command.equals(ADD) / 有用户上线更新在线列表 String username = ; String userIp = ; if (username = stringTokenizer.nextToken() != null & (userIp = stringTokenizer.nextToken() != null) User user = new User(username, userIp); onLineUsers.put(username, user); /listMo。

31、del.addElement(username); else if (command.equals(DELETE) / 有用户下线更新在线列表 String username = stringTokenizer.nextToken(); User user = (User) onLineUsers.get(username); onLineUsers.remove(user); else if (command.equals(USERLIST) / 加载在线用户列表 int size = Integer .parseInt(stringTokenizer.nextToken(); String。

32、 username = null; String userIp = null; for (int i = 0; i clients;JTextField jt1=new JTextField(127.0.0.1);JTextField jt2=new JTextField(6999);JTextArea jt3=new JTextArea(1,1);JTextArea jt4=new JTextArea(1,1);JLabel jl1=new JLabel(端口);JLabel jl2=new JLabel(IP);JLabel jl3=new JLabel(聊天窗口);JLabel jl4=new JLabel(写消息);final JButton jb1=new JButton(启动);final JButton jb2=new JButto。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值