校内通信_java课程设计论文(编辑修改稿)内容摘要:

信息。 关键代码如下: try {// 启动通讯服务端口 ss = new DatagramSocket(1111)。 } catch (SocketException e2) { if (().startsWith(Address already in use)) showMessageDialog(服务端口被占用 ,或者本软件已经运行。 )。 (0)。 } (3) checkPlacard 方法 , 用于检测系统公告 , 当公告路径中存在系统公告时 , 将从文件中获取完整信息 , 调用 pushMessage()方法将信息压入公告信息栈中。 关键代码如下 : private void checkpacard() { // 检测公告信息方法 String placardDir = (placardPath, null)。 if (placardDir == null) { 13 pushMessage(未设置公告路径 )。 return。 } File placard = new File(placardDir)。 try { if (() amp。 amp。 ()) { StringBuilder placardStr = new StringBuilder()。 Scanner sc = new Scanner(new FileInputStream(placard))。 while (()) { (())。 } pushMessage(())。 } catch (FileNotFoundException e) { pushMessage(公告路径错误,或公告文件不存在)。 } (4)initUserInfoButton()方法用于初始化本地用户信息,并在主窗体左上角显示本地用户的头像和名称,会在用户更改本地用户名称时同步更新。 (5) main()方法,本方法首先获取用户设置的界面外观,然后调用 UIManager 类设置指定的外观,生成主窗体对象。 最后初始化服务器端口和系统栏图标。 关键代码如下: public static void main(String args[]) { try { String laf = (lookAndFeel, java默认)。 //获取用户选择的外观 if ((当前系统 )1) 14 (UIManager .getSystemLookAndFeelClassName())。 //设置外观 EQ frame = new EQ()。 (true)。 //显示窗体 ()。 // 初始化系统栏 ()。 //启动服务端口 ()。 //检测系统公告 } catch (Exception e) { ()。 } } 记录窗体的位置步骤如下: (1)为窗体添加监听器,当改变窗体的位置和大小时,将调用saveLocation()方法将窗体和位置大小保存 到数据库中。 (2)saveLocation(),该方法中调用了 DAO 类中 updateLocation将窗体的位置和大小保存到数据库中。 公共模块的设计与实现 界面设计 在本系统的项目空间中,有部分模块是公用的,或者多个模块甚至整个系统的配置信息是被多个模块重复调用完成业务的逻辑。 其中有关数据库的操作、连接数据库、创建本机 IP 的默认用户(并添加到数据库中)、从数据库中获取窗体位置和大小、添加或删除指定用户、更新用户信息等 [4]。 实现过程 公共模块包括数据库操作类和系统工具类。 其中 DAO 类主 15 要负责有关数据库的操作,该类在构造方法中驱动并连接数据库,然后将构造方法设置为 private 私有属性,通过静态的 getdao()获取 DAO 类的实例对象,这是简单的单例模式。 在连接数据库时,可以指定 create 参数为 true 直接创建数据库,但在此之前需要调用 dbExist()方法判断数据库是否存在。 Dao 类的关键代码如下: public class Dao { // 数据库驱动 private static final String driver =。 private static String url = jdbc:derby:db_EQ。 // 数据库URL private static Connection conn = null。 // 数据库连接 private static Dao dao = null。 private Dao() { try { (driver)。 if (!dbExists()) { conn = (url +。 create=true)。 createTable()。 } else conn = (url)。 addDefUser()。 } catch (Exception e) { ()。 (null, 数据库连接异常 , 或者本软件已经运行。 )。 (0)。 16 } } private boolean dbExists() {// 测试数据库是否存在 boolean bExists = false。 File dbFileDir = new File(db_EQ)。 if (()) { bExists = true。 } return bExists。 } public static Dao getDao() {// 获取 DAO 实例 if (dao == null) dao = new Dao()。 return dao。 } public ListUser getUsers() {// 获取所有用户 ListUser users = new ArrayListUser()。 try { String sql = select * from tb_users。 Statement stm = ()。 ResultSet rs = (sql)。 while (()) { User user = new User()。 ((1))。 ((2))。 ((3))。 ((4))。 ((5))。 (user)。 17 } ()。 } catch (SQLException e) { ()。 } return users。 } Resource 类是校园内部通信系统中的工具类,该类中的方法都是静态的,可以直接调用,而不用创建 Resource 类的实例对象。 这些工具方法包括搜索用户的方法、登录公共资源的方法、信使群发的方法和单条信息发送的方法。 系统托盘模块的设计与实现 界面设计 系统托盘模块用于定义系统栏图标。 本系统的主窗体是继承对话框窗体编写的,该窗体在系统任 务栏不会显示任务标题,如果主窗体最小化之后将会隐藏,这时必须使用快捷键或者系统托盘中的图标执行显示窗体的命令。 系统托盘包含相应的菜单,右键点击会弹出选择菜单,菜单包括三个选项,分别是:“访问服务器”、“打开”、“退出”。 系统托盘的设计效果图如下所示: 18 图 图 实现过程 在 中, AWT 新增加了 SystemTray 类和 TrayIcon 类,它们可以在系统托盘区创建一个托盘程序。 SystemTray 类表示桌面右下角的系统托盘,系统托盘由运行在桌面上的所有应用程序共享,可以使用 getSystemTray()方法获取系统托盘对象,该方法总是对每个应用程序返回相同的实例。 并不是所有的操作系统都支持系统托盘,如果当前系统不支持托盘的话,该方法将自动抛出异常。 为避免程序出现错误,在获取系统托盘实例之前,需要检查系统 托盘是否支持。 可以调用 isSupport()来实现 [5]。 Systemtray 类可以包含一个或多个 TrayIcon 类的实例,即系统栏图标,可以使用 add()将它们添加到托盘, TrayIcon 对象由图像、弹出菜单和一组相关监听器组成。 创建系统托盘的关键代码如下: try { String title = 郑科校内通。 //系统栏提示文本的标题 String pany = JAVA项目小组。 //系统栏提示文本 SystemTray sysTray = ()。 //获取系统托盘对象 Image image = ().getImage( (/icons/))。 // 系统栏图标 trayicon = new TrayIcon(image, title + \n + pany, createMenu())。 //创建系统栏图标对象 19 (true)。 //设置自动大小 (new SysTrayActionListener())。 //添加监听器 (trayicon)。 //添加系统栏图标到系统托盘 (title, pany, )。 } catch (Exception e) { ()。 } 系统工具模块的设计与实现 界面设计 本系统的工具模块起到维护系统的作用,包括更换程序外观、。 设置 IP 范围、用户搜索和系统更新、设置系统公告路径、设置公共程序路径、系统登录等功能。 在该系统第一次运行的时,用户搜索功能可以搜索内部网络中所有正在运行的计算机。 本系统工具模块中使用了 Java 的 LookAndFeel 外观技术,不同的外观中控件的外观也会不同,就比如我们常用的电脑中,windows 经典样式和 windowsXP 样式外观的按钮、列表、菜单、工具栏甚至窗体的外观都不相同。 在本系统中提供了“当前系统”和“ JAVA 默认值”两个外观选项,其中“ JAVA 默认值”是 Swing默认的外观,不需要特别设置,而“当前系统”外观需要使用相应的方法获取当前系统的外观名称,然后将该外观应用于默认的外观 [6]。 系统工具的设计效果图如下所示: 20 图 图 实现过程 ( 1) createSysToolPanel()方法,用于创建系统工具选项卡,在该选项卡中包括界面选择、用户搜索和系统操作 3 部分,其中系统操作用于程序更新,它们都被添加到系统工具面板中,createSysToolPanel()方法必须设置好面板的布局和初始化工作。 关键代码如下: private JScrollPane createUserList() {// 用户列表面板 21 JScrollPane scrollPane = new JScrollPane()。 (ScrollPaneCons)。 addUserP。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。