需求说明:客户在任务栏(任务栏隐藏)上打开两个程序,一个A程序(Windows程序),
一个是java web系统,客户可能最小化javaweb程序,然后操作A程序,但是客户需要操作A程序的时候,如果java web系统
有新的数据,他需要知道。但是不要打断A程序的操作,要给个提示出来。请问下 应该怎么做?非常感谢。

解决方案 »

  1.   

    恩  是的  java web系统不断刷新数据库
      

  2.   

    我是指A程序 要监控数据库,不然怎么知道有更新啊。
    “不要打断A程序的操作”,这个好难哦,QQ弹窗都做不到这点...
      

  3.   

    这个有点不好实现,用java的定时器吧用java的context的TimerTasktask
      

  4.   

    先要把问题范围缩小点,不打断A程序的提示方式很多啊,直接通过A程序,或通过windows,或直接由java web系统。接下来就是java web系统如何获得数据更新消息,一般多会是主动轮询方式,而不太会是数据端推送。像开心网聊天的那种来消息提示是吧
      

  5.   

    我感觉,你放错板块了,你可以放到win板块去问问。
      

  6.   

    你用javaweb程序一直坚持数据库是否有更新,如果有更新的话,屏幕下方可以弹出来个信息提示下。不过这样做的话,影响系统性能。你可以参照下QQ下方小心的提示框~
      

  7.   

    这个问题很简单,而且不会影响性能!但是需要客户端就能很简单的实现 用线程和socket技术就能轻松实现
    照你所说,A程序是个客户端的话,那我们只需要在A的客户端上开启一个接收线程就可以了
    这个线程是干什么的!可以理解为开启一个简单的WEB服务
    package main;import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.ServerSocket;
    import java.net.Socket;import contron.MyMethodContron;public class ServerStart {
    public static void main(String[] args) throws Exception {
    ServerSocket server = new ServerSocket(10110);
    while (true) {
    Socket s = server.accept();
    Processer p = new Processer(s);
    Thread t = new Thread(p);
    t.start();
    }
    }
    }class Processer implements Runnable {
    private Socket socket; public Processer(Socket s) {
    // TODO Auto-generated constructor stub
    this.socket = s;
    } public void run() {
    try { InputStream is = socket.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String urlrequest = br.readLine();
    System.out.println(urlrequest);
    MyMethodContron.getMethod(urlrequest, socket); } catch (Exception ex) {
    ex.printStackTrace();
    } finally {
    try {
    socket.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    } }
    }这个线程就提供一个简单的WEB服务。哈哈,有了它。我们就可以对A程序发送url请求了
    比如现在B程序有了新的消息,但是用户在操作A程序,没有看到A。于是乎,我们就发送一个URL请求给B
    localhost:10110/method=lookB 
    我们可以通过urlrequest来解析出这个method,然后做判断,如果是lookB的话,然后我们再启动一个线程
    这个线程就是类似于QQ的图标闪动,其实制作也很简单!
    找一张静态图片
    ------一个线程-------
    public void run()
    {
     while(true)
    {
     图片 出现
     sleep(500)
     图片消失
    }
    }这样一个线程来实现图片闪动的效果。然后点击这个图片的时候,你把while中的true改成false,图片就停止闪动了,同时跳转进详情页面就好了