如何在Java中使用Swing修复元素的显示

如何在Java中使用Swing修复元素的显示,java,swing,jframe,actionlistener,Java,Swing,Jframe,Actionlistener,我正在使用Java中的Swing开发一个应用程序,但是,我在显示中遇到了一个奇怪的问题,我的代码工作得非常好,但是输出很奇怪。当我运行程序时。JFrame看起来是空的或缺少什么东西JMenuBar、JMenuItem等是不可见的,然后我最大化屏幕,所有其他东西都变为可见,然后最小化屏幕,它看起来是可见的。我很确定代码工作正常,这只是一个显示问题。有人能帮忙让第一个显示器看起来很好吗 这是密码 JFrame frame = new JFrame("Menu"); frame.se

我正在使用Java中的Swing开发一个应用程序,但是,我在显示中遇到了一个奇怪的问题,我的代码工作得非常好,但是输出很奇怪。当我运行程序时。JFrame看起来是空的或缺少什么东西JMenuBar、JMenuItem等是不可见的,然后我最大化屏幕,所有其他东西都变为可见,然后最小化屏幕,它看起来是可见的。我很确定代码工作正常,这只是一个显示问题。有人能帮忙让第一个显示器看起来很好吗

这是密码


    JFrame frame = new JFrame("Menu");
    frame.setVisible(true);
    frame.setSize(400,200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JMenuBar menubar = new JMenuBar();
    frame.setJMenuBar(menubar);

    JMenu file = new JMenu("File");
    menubar.add(file);

    JMenuItem exit = new JMenuItem("Exit");
    file.add(exit);


    JMenu help = new JMenu("Help");
    menubar.add(help);
    JMenuItem about = new JMenuItem("About");
    help.add(about);

    class exitaction implements ActionListener {

        public void actionPerformed (ActionEvent e) {
            System.exit(0);
        }
    }
    exit.addActionListener(new exitaction());

}






把下面的代码放在末尾。它会很好用的

setVisible方法是一个动作,就像JDK1.5之前的show一样

frame.setVisible(true);

如果你不上传代码,我们只能猜测。将JMenuBar添加到JFrame后,尝试调用revalidate。请发布代码。并删除图像。他们帮不上忙。如前所述,你应该给我们一个机会。我认为你不应该删除这些图片,因为它们确实有助于将问题形象化。“我很确定代码工作正常”——我不这么认为。编辑您的问题并向我们显示您的代码。至少,向我们展示创建窗口、添加菜单栏和显示窗口的代码。以下是建议的完整代码。谢谢!它正在工作。所以基本上,集合应该在末尾,包括JMenuBar和之前添加的所有其他内容。