• 用Java开发一个本地服务管理软件


    一、最终界面
    先贴上最终效果图,图1为初始化界面,图二为点击启动/停止之后的中间过渡状态,图三为启动成功后弹出的提示框

    把动态gif图片嵌入到jpg背景图中?用Adobe ImageReady即可办到

    二、初衷

    作为一个程序员,电脑里总是装了各式各样的开发工具,这些工具平时用不上,却一直在后台运行,浪费了大量的资源,为了响应国家“勤俭办一切事情”的号召,理所当然地要把这些偷偷摸摸吃资源的家伙杀掉。
    为了实现这个目的,可以直接在windows系统服务里面关闭,但是这样的话,下次再用的时候还要到服务管理器里面去找,而且说不定我已经记不清服务名了。(有人说可以用dos命令啊,洒家都已经说过了,我连服务名都忘却了,自然没法用dos命令)
    只有自己做的工具才是最顺手的,尝试自己做个工具管理这些常用的服务,经过几天的努力,终于做成了如上图所示的最终结果。期间复习了不少Java方面的知识,下面把开发过程中遇到的一些问题分享一下。
    三、 结构
    规划了三个java源文件:
    winserviceframe.java:界面
    winserviceActionHandler.java:响应管理
    winservicecontroller.java:服务控制
    界面初始化后,会根据当前时刻各个服务的状态,显示出用户可以进行的操作,如果当前服务正在运行,用户可以点击暂停按钮;如果当前服务已经停止,用户可以点击启动按钮。
    点击按钮后,程序会去执行用户的命令,并将执行结果显示出来,如果执行成功,按钮的状态会发生翻转,否则保持不变。
    四、 遇到的问题和解决的方法
    (1) 如何在java代码里面实现对服务的控制
    Process p = Runtime.getRuntime().exec(“cmd 命令”);
    InputStreamReader inputsreader = new InputStreamReader(p.getInputStream());
    BufferedReader bufreader = new BufferedReader(inputsreader);
    注意Runtime.getRuntime().exec()方法局限性很大,不能处理稍微复杂一点的命令。为了调试的方便,最好把p.getErrorStream()的结果也输出一下。
    (2) 添加按钮图片
    ImageIcon img = new ImageIcon(this.getClass().getResource("img/test.png"));
    buttonon = new JButton(img);
    注意java里面不支持ico格式的图片,如果上述语句用ico图片处理的话,会显示错误:at javax.swing.ImageIcon.<init>(Unknown Source)
    (3) 弹出提示信息框
    使用静态方法
    JOptionPane.showMessageDialog(null,res,"运行结果",JOptionPane.PLAIN_MESSAGE);
    (4) 图形初始化的时候不能显示控件,必须用鼠标改变一下界面大小才能显示
    必须把frame.setVisible(true);放到界面初始化过程的最后,这样才能把所有的组件刷出来显示
    (5) 点击按钮的之后,运行停顿一下,loading图片显示不完整
    原因是Runtime.getRuntime( “cmd”)过程有点费时,单线程处理的时候界面无法迅速响应,于是解决的办法也就有了,将点击按钮之后的动作放在另外一个单独的线程处理,为了让界面显示更流畅,可以加一个sleep(10)。
    五、 尚待改进的地方
    按钮按下的瞬间图片应该变扁一些,这样看起来更有动态感
    用定时器循环检查服务状态,防止用户在其他地方更改了服务,导致本程序与实际服务运行情况不符合

    下载链接:http://download.csdn.net/detail/mingziday/7323369

  • 相关阅读:
    jpeg 文档格式
    gif 文件格式
    firefox前世今生
    png 文档格式
    字符'\xe5\x8c\x97\xe4\xba\xac\xe6\x96\xb0\xe5\x8d\x8e\xe7\x94\xb5\xe8\x84\x91\xe5\xad\xa6\xe6\xa0\xa1' 转为汉字
    SQL server 报错:
    encode 与 decode
    Octave 作图 无响应
    qmake建工程
    urlparse (scheme、netloc、path等)
  • 原文地址:https://www.cnblogs.com/mingziday/p/3717936.html
Copyright © 2020-2023  润新知