简体   繁体   English

如何将JTextField添加到JFrame的MenuBar?

[英]How can I add a JTextField to a JFrame's MenuBar?

I've been trying to overload JMenu and put in some custom code to support a JTextField but that isn't going well. 我一直在尝试重载JMenu并添加一些自定义代码来支持JTextField,但这并不顺利。 My main purpose here is to add a search field to the right of my menu items. 我的主要目的是在菜单项的右侧添加一个搜索字段。 So I have something like File, Edit, help on the left and then on the right would be the search bar, almost like how there is a google search bar in some browsers. 所以我有左边的文件,编辑,帮助,然后右边的搜索栏,几乎就像在某些浏览器中有一个谷歌搜索栏。 Does anyone have an idea how I could go about adding this functionality? 有谁知道如何添加此功能?

I never see that as JMenuItem , I think that alyways placed in JMenuBar 我从未将其视为JMenuItem ,我认为alyways放置在JMenuBar

在此输入图像描述

import java.awt.ComponentOrientation;
import javax.swing.*;

public class MenuGlueDemo {

    public MenuGlueDemo() {
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(createMenu("Menu 1"));
        menuBar.add(createMenu("Menu 2"));
        menuBar.add(createMenu("Menu 3"));
        menuBar.add(new JSeparator());
        menuBar.add(new JButton("   Seach ....  "));
        menuBar.add(new JTextField("   Seach ....  "));
        menuBar.add(new JComboBox(new Object[]{"height", "length", "volume"}));
        menuBar.add(Box.createHorizontalGlue());
        menuBar.add(createMenu("About"));
        JFrame frame = new JFrame("MenuGlueDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(menuBar);
        frame.pack();
        frame.setVisible(true);
    }

    public JMenu createMenu(String title) {
        JMenu m = new JMenu(title);
        m.add("Menu item #1 in " + title);
        m.add("Menu item #2 in " + title);
        m.add("Menu item #3 in " + title);
        if (title.equals("About")) {
            m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        }
        return m;
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                MenuGlueDemo menuGlueDemo = new MenuGlueDemo();
            }
        });
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM