aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/swing/JMenuBar.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/JMenuBar.java')
-rw-r--r--libjava/classpath/javax/swing/JMenuBar.java27
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,