java - 有没有办法使用 Substance 从 JMenuBar 中删除此搜索图标和栏?

标签 java swing user-interface substance

我正在使用 Substance 和 Swing,并了解到当 x 数量的菜单和子菜单项添加到菜单中时,Substance 会自动为您在菜单栏上添加一个放大镜图标和一个搜索栏。它对于搜索菜单以更快地找到项目很有用,但不幸的是我不希望这样做,因为我没有设计用户界面来为其提供空间。有什么办法可以去除这个吗?

public class SubstanceMenu {
    public JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();

        for (int i = 0; i < 4; i++) {
            JMenu menu = new JMenu("A Menu");
            JMenu subMenu = new JMenu("A submenu");

            for (int j = 0; j < 5; j++) {
                menu.add("Menu item");
                subMenu.add("Sub Menu Item");
            }

            menu.add(subMenu);
            menuBar.add(menu);
        }

        return menuBar;
    }

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("MenuSelectionManagerDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        SubstanceMenu demo = new SubstanceMenu();
        frame.setJMenuBar(demo.createMenuBar());
        frame.setSize(450, 260);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(
                "org.jvnet.substance.skin.SubstanceMagmaLookAndFeel");
            SwingUtilities.invokeLater(() -> createAndShowGUI());
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
}

如何删除图标/栏?

enter image description here

最佳答案

这里是 Substance 的开发者。

看起来您正在使用 Substance 的非常旧的版本(基于外观类的“org.jvnet”包名称)。最新版本的 Substance(现已成为 Radiance 的一部分)可通过 https://github.com/kirill-grouchnikov/radiance 获取。除非在应用程序代码中明确配置,否则不要添加菜单搜索小部件。

关于java - 有没有办法使用 Substance 从 JMenuBar 中删除此搜索图标和栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783685/

相关文章:

使用文本类并选择行时 JavaFX TableColumn 字体颜色错误

Java Swing 打开现有表单

java - Mac JVM渲染JTabbedPane 1.6及以上版本差异

c++ - 具有两个窗口的 C++ 应用程序。任务栏中显示一个窗口。另一个没显示

javascript - jQuery UI Datepicker - 禁用当前日期但不突出显示

matlab - 如何在 MATLAB 中使用“Java range slider”

java - 如何将 HtmlImage 对象转换为 RenderedImage?

java - 在java中创建2个子类的数组的最佳方法

java - 区分不同处理的类类型的最佳方法

java - 将 JMenuBar 添加到 JFrame