diff options
Diffstat (limited to 'libjava/classpath/javax/swing/JMenuBar.java')
-rw-r--r-- | libjava/classpath/javax/swing/JMenuBar.java | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/libjava/classpath/javax/swing/JMenuBar.java b/libjava/classpath/javax/swing/JMenuBar.java index 18e47dc..35f1293 100644 --- a/libjava/classpath/javax/swing/JMenuBar.java +++ b/libjava/classpath/javax/swing/JMenuBar.java @@ -370,10 +370,30 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement { MenuElement[] subElements = new MenuElement[getComponentCount()]; + int j = 0; + boolean doResize = false; + MenuElement menu; for (int i = 0; i < getComponentCount(); i++) - subElements[i] = (MenuElement) getMenu(i); + { + menu = getMenu(i); + if (menu != null) + { + subElements[j++] = (MenuElement) menu; + } + else + doResize = true; + } - return subElements; + if (! doResize) + return subElements; + else + { + MenuElement[] subElements2 = new MenuElement[j]; + for (int i = 0; i < j; i++) + subElements2[i] = subElements[i]; + + return subElements2; + } } /** @@ -522,6 +542,9 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement KeyEvent e, int condition, boolean pressed) { + if (menuElement == null) + return false; + // First check the menuElement itself, if it's a JComponent if (menuElement instanceof JComponent && ((JComponent) menuElement).processKeyBinding(ks, e, condition, |