你有没有人知道为什么我的JMenuBar menuBar
没有显示出来? 我正在使用JFrame
和JPanel
。JMenuBar没有显示
我的课程扩展了JPanel
并且有一个paint
方法被继承(已经用super.paint(g)
)。
我想显示一些JLabels
和JTextFields
我JMenuBar
(我知道这不是它的目的)
这里是我的代码:
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);
}
**别t使用空布局!!! **。这已经在你之前的帖子中提到过了:http://stackoverflow.com/questions/36751366/some-swing-components-not-showing-on-jframe。注意建议。我们给他们一个理由。阅读关于[如何使用菜单]的Swing教程(http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html)作为示例。该代码还将告诉你如何更好地构建你的课堂。 – camickr
camickr我知道,但这个程序只适用于我,甚至我的老师在学校告诉我们,我们可以使用null布局。所以这取决于我使用的是什么!此外,null布局非常简单易用! –
'此外,null布局非常简单易用! ' - 不,不是。你完全不知道一个组件应该多大才能正确显示。对随机数进行硬编码是浪费时间,并且只会在未来造成问题,尤其是在需要进行更改时。简单的事情,如更改字体将导致问题。只是因为你可以做点什么并不意味着你应该这样做。学习正确使用Swing!你甚至还没有学过Swing的基础知识(或者你不会问这个问题),所以你不知道什么是或不是很容易。这只是来自经验。 – camickr