Pfeffer 2017-12-30 13:11 采纳率: 50%
浏览 851
已结题

关于在JMenuBar中用container的问题

1.我想在将 JMenuBar 和 Button用容器放在一起,但是总是不显示
2.这个中间O 和 P,S,E等字母的简写分别是啥快捷键,为啥没反映呢

 public class Menue extends JFrame {
    public Menue() {
        JFrame  jf = new JFrame();
        Container contentPane = getContentPane();

        //super("Men�Beispiel");      
        JMenuBar menubar = new JMenuBar();// 我猜测这个是大概框架

        JMenu menu1 = new JMenu("JMenu1");// 框架上的按钮
        JMenuItem item1 = new JMenuItem("Item 1");
        JMenuItem item2 = new JMenuItem("Item 2");
        JMenuItem item3 = new JMenuItem("Item 3");
        menu1.add(item1);
        menu1.add(item2);
        menu1.add(item3);

        JMenu menu2 = new JMenu("JMenu2");// 框架上的按钮
        JMenuItem item4 = new JMenuItem("Item 4");
        JMenuItem item5 = new JMenuItem("Item 5");
        menu2.add(item4);
        menu2.add(item5);

        JMenu menu3 = createFileMenu();

        menubar.add(menu3);

        menubar.add(menu1);

        menubar.add(menu2);

        menu1.addSeparator();
        /*下面这个比较麻烦*/
        setJMenuBar(menubar);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 500);

        contentPane.setLayout(new BorderLayout());

        contentPane.add(new JButton("Hallo"));

        contentPane.remove(0);

        setVisible(true);
    }

    private void setCtrlAccelerator(JMenuItem mi, char acc) {
        KeyStroke ks = KeyStroke.getKeyStroke(acc, Event.CTRL_MASK);
        mi.setAccelerator(ks);
    }

    private JMenu createFileMenu() {
        JMenu ret = new JMenu("Datei");
        ret.setMnemonic('M');// alt+M

        JMenuItem mi;
        //�ffnen
        mi = new JMenuItem("Oeffnen", 'f');
        /*
         * public JMenuItem(String text,
         int mnemonic)创建带有指定文本和键盘助记符的 JMenuItem。 

        参数:
        text - JMenuItem 的文本
        mnemonic - JMenuItem 的键盘助记符
         * */

        setCtrlAccelerator(mi, 'O');
        ret.add(mi);
        //Speichern
        mi = new JMenuItem("Speichern", 'p');
        setCtrlAccelerator(mi, 'S');
        ret.add(mi);
        //Separator
        ret.addSeparator();
        //Beenden
        mi = new JMenuItem("Beenden", 'e');
        ret.add(mi);
        return ret;
    }

    public static void main(String[] argumente) {
        new Menue();

    }

}
  • 写回答

1条回答 默认 最新

  • devmiao 2017-12-30 15:25
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?