JMenuBar 未显示



你们中有谁知道为什么我的JMenuBar menuBar没有出现?我正在使用JFrameJPanel.

我的类扩展了JPanel并继承了一个paint方法(已经使用 super.paint(g) )。

我想在我的JMenuBar上显示一些JLabelsJTextFields(我知道这不是它的目的)

这是我的代码:

public void createMenuBar(){
    menuBar = new JMenuBar();
    menuBar.setBounds(0,0,1463,29);
    menuBar.setLayout(null);
    this.add(menuBar);
    ipLbl = new JLabel("IP-Adresse:");
    ipLbl.setBounds(5,2,150,25);
    ipLbl.setLabelFor(ip);
    menuBar.add(ipLbl);
    ip = new JTextField();
    ip.setBounds(150,2,100,25);
    menuBar.add(ip);
}

我在创建 JFrame 后调用此方法,但在执行setVisible(true)之前。

看:

public IceHockey(){
    try {
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e){}
    fenster = new JFrame("IceHockey");
    fenster.setSize(1479, 941);
    fenster.setLayout(null);
    fenster.addKeyListener(this);
    fenster.addMouseListener(this);
    fenster.setResizable(false);
    fenster.setLocationRelativeTo(null);
    fenster.setContentPane(this);
    this.addKeyListener(this);
    this.addMouseListener(this);
    createMenuBar();
    fenster.setVisible(true);
    fenster.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

您可以使用fenster.setJMenuBar(menuBar);将菜单栏添加到框架中

如果你想将菜单栏添加到JPanel,这篇文章有一个你可以使用的方法:

将 JMenuBar 添加到 JPanel?

创建菜单栏后,我认为您仍然需要将其添加到您的 JFrame 中。将 createMenuBar() 更改为返回 JMenuBar 而不是 void,然后您可以编写以下内容:

fenster.setJMenuBar(createMenuBar());

我不清楚您的 createMenuBar() 代码中的内容是什么,但我猜它不是 fenster 还允许添加。

最新更新