java - 如何在java swing中使用socket显示通知

标签 java swing socket.io notifications

我正在开发一个基于java swing的应用程序,它安装了一些计算机并通过LAN连接。我可以使用套接字在它们之间传输文件。现在我想在有人通过套接字接收任何文件时显示为通知。

    ServerSocket serverSocket = new ServerSocket(6928);
    Socket socket = serverSocket.accept();

    BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
    DataInputStream dis = new DataInputStream(bis);

    int filesCount = dis.readInt();
    File[] files = new File[filesCount];

通过上面的代码,我可以从其他电脑接收文件。现在我想在服务器端将其显示为通知。

最佳答案

您可以使用 TrayIcon 类。考虑以下示例,创建 TrayIcon 对象并将其添加到 SystemTray 中。鼠标单击操作附加到 TrayIcon,单击事件显示通知。您还可以使用 showNotification 方法来显示通知。

现在在您的代码中,当您从服务器收到文件时,调用 showNotification 方法以及您想要在通知上显示的数据。

static Image image = Toolkit.getDefaultToolkit().getImage("<Image Path>"); //System Tray Icon

    static TrayIcon trayIcon = new TrayIcon(image, "Test");

    public static void main(String[] a) throws Exception {
        if (SystemTray.isSupported()) {
            SystemTray tray = SystemTray.getSystemTray();

            trayIcon.setImageAutoSize(true);
            trayIcon.addMouseListener(new MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent e) {
                    trayIcon.displayMessage("Test!", "Mouse Clicked", TrayIcon.MessageType.INFO);
                };
            });

            try {
                tray.add(trayIcon);
            } catch (AWTException e) {
                System.err.println("TrayIcon not Added");
            }
        }
    }

    public static void showNotification(String title, String msg, String location) {
        if (SystemTray.isSupported()) {
            trayIcon.displayMessage(title, msg, TrayIcon.MessageType.INFO);
        }
    }

关于java - 如何在java swing中使用socket显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297386/

相关文章:

multithreading - 事件调度线程绘画

javascript - 面向个人用户的带有 Node.js 和 Socket.io 的 Pubsub

javascript - 通过 Websocket() 连接到 socket.io 服务器时不起作用

java - JTable 和 MySQL 问题

java - Vertx HttpCllentRequest 重定向

java - JPanel 格式问题

node.js - 为什么 HTML WebSocket 访问 Socket.io web socket 服务器失败?

java - 如何让应用程序保密?

java - iText - 将内容添加到现有的 PDF 文件

java - GridLayout - JButtons、数组和图像?