我如何在Swing中编写动态菜单栏?

时间:2009-04-23 08:09:45

标签: java swing

基本上我希望能够允许用户保存书签,然后将书签放入菜单栏上子菜单的列表中。我如何为可能添加的任意数量的书签编写常规函数,我基本上希望项目在单击时将URL放入文本框中。我需要为此创建一个新类,还是有内置函数?

我的程序是一个简单的RSS阅读器,用Java编写,使用Swing。

1 个答案:

答案 0 :(得分:5)

您需要将MenuListener添加到您想要动态的菜单项中。 在 void menuSelected(MenuEvent e)方法中,实现子菜单的构造。 在第一个实现中,您可以先重置菜单内容,然后从头开始重新创建,而不是更新它:

JMenu menu = new JMenu("Bookmarks");
menu.addMenuListener(new MyMenuListener());

private class MyMenuListener implements MenuListener {

    public void menuCanceled(MenuEvent e) { }

    public void menuDeselected(MenuEvent e) { }

    public void menuSelected(MenuEvent e) {
        JMenu menu = (JMenu) e.getSource();
        populateWindowMenu(menu);
    }
}

void populateWindowMenu(JMenu windowMenu) {
    windowMenu.removeAll();
    // Populate the menu here
}