Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6580930

Swing Popups should overlap taskbar

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7
    • Fix Version/s: 7
    • Component/s: client-libs
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b20
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        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();
                    }
                });
            }
        }

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  alexp Alexander Potochkin (Inactive)
                  Reporter:
                  alexp Alexander Potochkin (Inactive)
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: