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

dan*_*ker 3 java swing

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

我的程序是一个使用Swing用J​​ava编写的简单RSS阅读器.

Den*_* R. 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
}
Run Code Online (Sandbox Code Playgroud)