java - 菜单栏出现在 JFrame 的左侧。如何让它出现在JFrame的顶部?

标签 java swing layout-manager menubar

 import javax.swing.*;
import java.awt.event.*;
//import java.awt.event.ActionListener;

 class Test extends JFrame 
 {
    JButton qb=new JButton("quit");
    JPanel p1=new JPanel();
    JMenuBar menubar = new JMenuBar();
   JMenu file = new JMenu("File");
   JMenuItem eMenuItem = new JMenuItem("Exit");
    public Test()
   {
    //setLayout();
    setTitle("this is a test");
    setSize(300,300);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setAlwaysOnTop(true);
    setResizable(true);
    setExtendedState( this.getExtendedState()|JFrame.MAXIMIZED_BOTH );//to set initial state of frame as minimized
    menubar.add(file);
    add(menubar);
    file.add(eMenuItem);

}
public static void main (String[] args) 
{
    new Test();
}

}

我写了上面的代码,并试图找出菜单栏出现在框架左侧的原因,但失败了。另外,layoutmanager 在测试构造函数中不起作用。我还尝试在代码中插入一个按钮,但它也没有出现。那么框架出现这种行为的可能原因是什么以及解决方案是什么?

最佳答案

您可以尝试调用setJMenuBar(..)

更改代码

    menubar.add(file);
    add(menubar);
    file.add(eMenuItem);

menubar.add(file);
file.add(eMenuItem);
this.setJMenuBar(menubar);

然后就可以正常工作了。

关于java - 菜单栏出现在 JFrame 的左侧。如何让它出现在JFrame的顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811400/

相关文章:

java - 你能在 CardLayout 上放置 SpringLayout "esque"约束吗?

java - JButton 设置位置不起作用

java - Nack 当前消息之前的所有消息并 Ack 当前消息(rabbitmq,java)

java - 使用 Netty 在 Resteasy 测试中注入(inject)上下文数据

Java Swing并发显示JTextArea

java - java 日历帮助

java - 使用 Netty 发送 POST 参数,为什么 DefaultHttpDataFactory 不在版本中?

java - XPages - 使用 Java 将文本复制到本地剪贴板

java - 从 2 个不同的客户端调用同一个 Servlet

java - 如何删除仍然使用流布局的 JPanel 之间的填充?