我创建了一个菜单栏并添加了一个包含多个项目的菜单。当我在JMenu(archiveMenu)上执行doClick()时,它会突出显示菜单的按钮,但它不会显示添加到其中的任何项目。在将actionListeners添加到items和setVisible(true)之前,我尝试过doClick(),但没有任何效果。
我认为这与他们有单独的actionListeners这一事实有关,但到目前为止,我在程序中更改为单个actionListener会导致大量的工作。感谢任何帮助,谢谢!
看起来像这样:
// MENU BAR
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu archiveMenu = new JMenu("Archive");
menuBar.add(archiveMenu);
JMenuItem newItem = new JMenuItem("New Map");
JMenuItem loadItem = new JMenuItem("Load places");
JMenuItem saveItem = new JMenuItem("Save");
JMenuItem exitItem = new JMenuItem("Exit");
newItem.addActionListener(new NewMapLis());
loadItem.addActionListener(new LoadLis());
saveItem.addActionListener(new SaveLis());
exitItem.addActionListener(new ExitLis());
archiveMenu.add(newItem);
archiveMenu.add(loadItem);
archiveMenu.add(saveItem);
archiveMenu.add(exitItem);
archiveMenu.doClick();
答案 0 :(得分:0)
发生的事情是,当调用doClick()
时,窗口尚未完全加载。
你需要在加载后执行它。
例如,你可以在打开框架时调用它:myFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent e) {
archiveMenu.doClick();
}
});