Use getMenu()
, getMenuComponents()
, and getMenuCount()
to walk the menu bar:
private JMenuItem findJMenuItem(String name) {
for (int menu = 0; menu < menubar.getMenuCount(); menu++) {
Component[] menuitems = menubar.getMenu(menu).getMenuComponents();
for (int i = 0; i < menuitems.length; i++) {
if (menuitems[i] instanceof JMenuItem) {
JMenuItem item = (JMenuItem) menuitems[i];
if (item.getText().equals(name)) {
return item;
}
}
}
}
return null;
}
Menu items can be activated with the doClick()
method:
public void testNewMenuItem() {
int oldNumberOfWindows = Frame.getFrames().length;
JMenuItem newMenuItem = findJMenuItem("New Player");
newMenuItem.doClick();
int newNumberOfWindows = Frame.getFrames().length;
assertEquals(oldNumberOfWindows+1, newNumberOfWindows);
}