Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
In native applications for Windows, if a popup is big enough it can overlap the taskbar (see the image attached) the same behaiviour can be seen for GTK on *nix Swing doesn't allow popups to overlap taskbar and it prevents Swing applications from looking native and the most important it doesn't allow to implement the JTrayIcon to use JPopupMenu together with awt.TrayIcon Use the simple test to see that popup doesn't overlap taskbar: import javax.swing.*; public class PopupTest { private static void createGui() { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPopupMenu menu = new JPopupMenu("Menu"); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); menu.add(new JMenuItem("MenuItem")); JPanel panel = new JPanel(); panel.setComponentPopupMenu(menu); frame.add(panel); frame.setSize(200, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) throws Exception { SwingUtilities.invokeLater(new Runnable() { public void run() { PopupTest.createGui(); } }); } }
|