java - 为什么即使添加 setJMenubar() 方法后,Jmenubar 在我的 Jframe 中也不可见?

标签 java swing

我是 java swing 类(class)的新手,正在学习如何在 JFrame 中添加菜单栏和菜单。

我写了一个简单的例子,但是 JFrame显示为空,我不知道为什么,因为我已经包含了 setJMenuBar()我的代码中的方法然后菜单栏也不可见。

这是我的代码

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class jmenuexample extends JFrame //implements ActionListener
{
    JLabel title;
    JMenuBar menubar;
    JMenu menu, submenu;
    JMenuItem menuItem;
    jmenuexample()
    {
        setTitle("JMenu Example");
        setSize(750, 450);
        //setLayout(null);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        menubar = new JMenuBar();
        menu = new JMenu("File");
        menuItem = new JMenuItem("New\tCtrl+N");
        menu.add(menuItem);
        menuItem = new JMenuItem("Open\tCtrl+O");
        menu.add(menuItem);
        menuItem = new JMenuItem("Save\tCtrl+S");
        menu.add(menuItem);
        //menu.addSeparator();
        menuItem = new JMenuItem("Exit");
        menu.add(menuItem);
        menubar.add(menu);
        /*panel = new JPanel();
        panel.setLayout(new GridLayout());
        panel.setBounds(250,10, 400, 300);*/
        //add(menubar);
        //add(panel);
        this.setJMenuBar(menubar);
    }
    public static void main(String argv[])
    {
        new jmenuexample();
    }
}

这是这段代码的输出。

Screenshot of output

最佳答案

因为你在设置之前使用了setVisible(true); this.setJMenuBar(菜单栏);

所以改变顺序并最后setVisible(true);

你的代码应该是这样的:

....
menubar.add(menu);
/*panel = new JPanel();
 panel.setLayout(new GridLayout());
 panel.setBounds(250,10, 400, 300);*/
//add(menubar);
//add(panel);
this.setJMenuBar(menubar);
setVisible(true);
....

希望这可以帮助你。

关于java - 为什么即使添加 setJMenubar() 方法后,Jmenubar 在我的 Jframe 中也不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188381/

相关文章:

java - 首次运行 jhipster 应用程序失败,启动 tomcat 上下文时出错

java - 我的 android 项目依赖 httpclient 和 httpMime 无法构建

java - JLabel 没有出现在 JFrame 中

java - 在 java 中使用 MVC 设置 KeyListener

java - 如何创建多层JComboBox

java - 如何创建像新的 YouTube 应用程序一样的多任务视频 Activity ?

java - 为什么ReferenceQueue总是空的?

java - mongodb连接抛出MongoSocketReadException

java - 更改 GUI 窗口大小

java - 在文本文件中逐行单词