【发布时间】:2021-03-05 10:15:14
【问题描述】:
我有一个想要添加菜单栏的 JFrame,然后让该 JFrame 自动全屏打开。如果我只是制作一个 JFrame 并使用 f.setExtendedState(f.getExtendedState()|JFrame.MAXIMIZED_BOTH ); 将其设置为全屏,那效果很好:
import javax.swing.*;
public class testframe {
private static JFrame f;
public static void main(String[] args) {
SwingUtilities.invokeLater(testframe::createAndShowGUI);
}
private static void createAndShowGUI() {
f = new JFrame("Test");
f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;
f.pack();
f.setVisible(true);
}
}
但是,一旦我将 JMenuBar 添加到该 JFrame 中,它将不再全屏打开:
import javax.swing.*;
public class testframe {
private static JFrame f;
public static void main(String[] args) {
SwingUtilities.invokeLater(testframe::createAndShowGUI);
}
private static void createAndShowGUI() {
f = new JFrame("Test");
JMenuBar menubar = new JMenuBar();
JMenu j_menu = new JMenu("Test");
JMenuItem j_menu_item = new JMenuItem("Test_item");
j_menu.add(j_menu_item);
menubar.add(j_menu);
f.setJMenuBar(menubar);
f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;
f.pack();
f.setVisible(true);
}
}
这可能是什么原因?
更新:
切换到 JDK11 解决了这个问题。我之前是15,也试过14,都出问题了。
【问题讨论】:
-
您使用的是什么操作系统和Java版本?
标签: java swing jframe jmenubar