2016-06-09 99 views
-1

你有没有人知道为什么我的JMenuBar menuBar没有显示出来? 我正在使用JFrameJPanelJMenuBar没有显示

我的课程扩展了JPanel并且有一个paint方法被继承(已经用super.paint(g))。

我想显示一些JLabelsJTextFieldsJMenuBar(我知道这不是它的目的)

这里是我的代码:

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); 

} 
+0

**别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

+0

camickr我知道,但这个程序只适用于我,甚至我的老师在学校告诉我们,我们可以使用null布局。所以这取决于我使用的是什么!此外,null布局非常简单易用! –

+0

'此外,null布局非常简单易用! ' - 不,不是。你完全不知道一个组件应该多大才能正确显示。对随机数进行硬编码是浪费时间,并且只会在未来造成问题,尤其是在需要进行更改时。简单的事情,如更改字体将导致问题。只是因为你可以做点什么并不意味着你应该这样做。学习正确使用Swing!你甚至还没有学过Swing的基础知识(或者你不会问这个问题),所以你不知道什么是或不是很容易。这只是来自经验。 – camickr

回答

1

创建菜单栏后,我觉得你还是需要把它添加到您的JFrame。更改createMenuBar()返回JMenuBar的而不是无效的,那么你可以写:

fenster.setJMenuBar(createMenuBar()); 

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

+0

“this”是扩展的JPanel ^^ –

2

你可以,如果你想添加到JPanel的这个帖子有一个方法,您可以使用菜单栏与fenster.setJMenuBar(menuBar);

菜单栏添加到框架:

add JMenuBar to a JPanel?