你们中有谁知道为什么我的JMenuBar menuBar
没有出现?我正在使用JFrame
和JPanel
.
我的类扩展了JPanel
并继承了一个paint
方法(已经使用 super.paint(g)
)。
我想在我的JMenuBar
上显示一些JLabels
和JTextFields
(我知道这不是它的目的)
这是我的代码:
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 还允许添加。