有没有办法在 PopupMenu(使用 TrayIcon)中渲染像 JPanel 这样的图形?我知道使用 JPopupMenu 是可能的,但我不喜欢在弹出窗口外部单击时不会关闭(并且图标不会像 PopupMenu 那样突出显示)。
我试图用 JPopupMenu 做的例子:
    if( SystemTray.isSupported() ) {
        // Get the SystemTray instance
        SystemTray tray = SystemTray.getSystemTray();
        // Load icon
        Image image = new ImageIcon(this.getClass().getResource("delete.png")).getImage();
        final JPopupMenu popup = new JPopupMenu();
        popup.add( new JMenuItem("Test") );
        JPanel p1 = new JPanel();
        p1.setBackground( Color.red );
        p1.setPreferredSize( new Dimension(200, 300) );
        popup.add( p1 );
        JTrayIcon trayIcon = new JTrayIcon( image );
        trayIcon.setJPopupMenu( popup );
        trayIcon.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseReleased(MouseEvent e) {
                popup.setLocation(e.getX(), e.getY());
                popup.setInvoker(popup);
                popup.setVisible(true);
            }
        });
        try {
            tray.add( trayIcon );
        } catch (Exception e) {
            JOptionPane.showMessageDialog( null, "Could not add tray icon." );
        }
    }