Есть ли способ отображать графику, такую как JPanel, в PopupMenu (с TrayIcon)? Я знаю, что это возможно с помощью 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." );
}
}