我一直在尝试重载JMenu并添加一些自定义代码来支持JTextField,但效果不佳。我的主要目的是在菜单项右侧添加一个搜索字段。因此,我希望左侧有像“文件”、“编辑”、“帮助”这样的选项,右侧有搜索栏,就像某些浏览器中有Google搜索栏一样。请问是否有人知道我该如何添加此功能?
我一直在尝试重载JMenu并添加一些自定义代码来支持JTextField,但效果不佳。我的主要目的是在菜单项右侧添加一个搜索字段。因此,我希望左侧有像“文件”、“编辑”、“帮助”这样的选项,右侧有搜索栏,就像某些浏览器中有Google搜索栏一样。请问是否有人知道我该如何添加此功能?
我从未将其视为JMenuItem
,我认为它总是放在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();
}
});
}
}