publicstaticvoid main(String[] args) throws Exception { if (!Platform.isOSX()) {
System.out.println("This test is for MacOS only. Automatically passed on other platforms."); return;
}
privatestatic MenuBar createMenuBar() { // A very long name makes it more likely that the robot will hit the // menu
Menu menu = new Menu("TestTestTestTestTestTestTestTestTestTest");
MenuItem item = new MenuItem("TestTestTestTestTestTestTestTestTestTest");
item.addActionListener(new ActionListener() {
@Override publicvoid actionPerformed(ActionEvent ev) {
isActionPerformed = true;
}
});
menu.add(item);
MenuBar mb = new MenuBar();
mb.add(menu); return mb;
}
privatestaticvoid performMenuItemTest(Robot robot) { // Find the menu on the screen menu bar // The location depends upon the application name which is the name // of the first menu. // Unfortunately, the application name can vary based on how the // application is run. // The work around is to make the menu and the menu item names very // long. int menuBarX = 250; int menuBarY = 11; int menuItemX = menuBarX; int menuItemY = 34;
robot.mouseMove(menuBarX, menuBarY);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseMove(menuItemX, menuItemY);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.waitForIdle();
waitForAction();
}
privatestaticvoid waitForAction() { try { for (int i = 0; i < 10; i++) { if (isActionPerformed) { return;
} Thread.sleep(100);
}
} catch (InterruptedException ex) {
}
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.