首页 > 解决方案 > 如何在 Java 中使用 Swing 修复元素的显示

问题描述

我正在使用 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());

}





标签: javaswingjframeactionlistener

解决方案


把下面的代码放在最后。它会正常工作的。

该方法setVisible是一个动作,就像show()JDK 1.5 之前一样。

frame.setVisible(true);

推荐阅读