没有收到任何错误,但程序仅在程序顶部显示“菜单”一词。它不显示 3 个 JMenu
项:“home”、“about”和“explore”。
JPanel p5 = new JPanel(new GridBagLayout());
p5.setVisible(true);
fw.add(p5, BorderLayout.PAGE_START);
JMenu menu = new JMenu("Menu");
menu.setVisible(true);
menu.add("home");
menu.add("about");
menu.add("explore");
JMenuBar menubar = new JMenuBar();
fw.setJMenuBar(menubar); //ADDED THIS LINE. STILL DOESN'T WORK.
menubar.setVisible(true);
menubar.add(menu);
p5.add(menu);
我已将 JMenu
添加到 JMenuBar
(所有 JMenu
、JMenubar
和 JPanel
code> 设置为可见)。另外,我将 JPanel (p5) 添加到“第一个窗口 (fw)”,并将菜单添加到 p5。我不确定为什么我的菜单项没有显示。
更新: MCVE(最小完整且可验证的示例)根据要求。
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
public class TestingClass extends JFrame {
public static void main(String[] args) {
FirstWindow fw = new FirstWindow();
fw.setSize(400, 600);
fw.setDefaultCloseOperation(EXIT_ON_CLOSE);
fw.setVisible(true);
JPanel p5 = new JPanel(new GridBagLayout());
p5.setVisible(true);
fw.add(p5);
JMenu menu = new JMenu("Menu");
menu.setVisible(true);
menu.add("home");
menu.add("about");
menu.add("explore");
JMenuBar menubar = new JMenuBar();
fw.setJMenuBar(menubar); // THE UPDATED LINE OF CODE.
menubar.setVisible(true);
menubar.add(menu);
p5.add(menu);
}
}
当您运行该程序时,您将看到显示“菜单”字样。不显示 JMenu
中的“home、about 和 explore”项目。有人知道我做错了什么吗?
最佳答案
运行时问题的 MCVE 应该可以干净地编译。这显示了 3 个编译错误。一个是缺少导入(很容易修复),但另外两个与缺少 FirstWindow
有关。
然而,一旦进行了一些调整,问题就变得清晰起来。一个组件只能出现在一个地方。通过将其添加到面板(在下面注释掉),它也不会出现在菜单中。
import java.awt.*;
import javax.swing.*;
public class TestingClass extends JFrame {
public static void main(String[] args) {
JFrame fw = new JFrame();
fw.setSize(400, 200); // for screenshot
fw.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel p5 = new JPanel(new GridBagLayout());
p5.setVisible(true);
fw.add(p5);
JMenu menu = new JMenu("Menu");
//menu.setVisible(true);
menu.add("home");
menu.add("about");
menu.add("explore");
JMenuBar menubar = new JMenuBar();
fw.setJMenuBar(menubar); // THE UPDATED LINE OF CODE.
//menubar.setVisible(true);
menubar.add(menu);
//p5.add(menu); // WTF?
fw.setVisible(true); //should be done after all components are added
}
}
关于java - 添加 JMenuBar 并将其设置为可见后,Eclipse 不显示 JMenu 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24347872/