Java JMenu在调整窗口大小之前不显示
我正在尝试创建一个示例程序,它有一个菜单和一些选项。 问题是,当我运行程序时,菜单在窗口重新调整大小之前不会出现。我不确定问题出在哪里,我希望能得到任何帮助 以下是我正在使用的代码: 另外,我已经导入了我需要的所有库Java JMenu在调整窗口大小之前不显示,java,swing,jframe,jmenubar,Java,Swing,Jframe,Jmenubar,我正在尝试创建一个示例程序,它有一个菜单和一些选项。 问题是,当我运行程序时,菜单在窗口重新调整大小之前不会出现。我不确定问题出在哪里,我希望能得到任何帮助 以下是我正在使用的代码: 另外,我已经导入了我需要的所有库 public class TextEditor { public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(700,500); f.setDefaultC
public class TextEditor {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(700,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
JMenuBar menuBar = new JMenuBar();
f.setJMenuBar(menuBar);
JMenu file = new JMenu("File");
menuBar.add(file);
JMenuItem open = new JMenuItem("Open File");
file.add(open);
}
}
在添加JMenuBar之前,您正在设置大小并设置JFrame visible,因此,菜单栏最初没有显示也就不足为奇了,因为它最初从未渲染过。您的解决方案是在打包和可视化GUI之前添加JMenuBar,这样就解决了问题
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class TextEditor {
public static void main(String[] args) {
JFrame f = new JFrame("Foo");
f.add(Box.createRigidArea(new Dimension(700, 500)));
JMenuBar menuBar = new JMenuBar();
f.setJMenuBar(menuBar);
JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
menuBar.add(file);
JMenuItem open = new JMenuItem("Open File");
file.add(open);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}