我有一个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岁,都有问题。
2条答案
按热度按时间ctehm74n1#
一旦我将jmenubar添加到jframe中,它将不再全屏打开:
为我全屏显示。我在windows10中使用jdk11。
但是,菜单不起作用,因为您有一个编码问题。您需要将jmenu添加到jmenubar。
而且,我总是用:
yv5phkfx2#
你得打电话给警察
JFrame
方法的正确顺序。