yj2*_*000 4 java swing jframe jmenubar
我正在尝试创建一个示例程序,其中有一个菜单和一些选项。问题是当我运行程序时,直到重新调整窗口大小后才会出现菜单。我不确定问题是什么,希望得到任何帮助。
这是我正在使用的代码:
PS 我已经导入了我需要的所有库。
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);
}
}
Run Code Online (Sandbox Code Playgroud)
您在添加 JMenuBar之前设置大小并设置 JFrame 可见,因此菜单栏最初不显示也就不足为奇了,因为它最初从未呈现。您的解决方案是在打包和可视化 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);
}
}
Run Code Online (Sandbox Code Playgroud)