首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JMenuBar找不到符号

JMenuBar找不到符号
EN

Stack Overflow用户
提问于 2013-05-28 22:25:57
回答 3查看 1K关注 0票数 0

我刚刚开始学习Java,我一直在阅读文档。我不喜欢复制一堆代码并粘贴它。所以我一直在试着用我的方式来完成文档的一件事。

我已经有了一个工作的JFrame,并决定从添加一个菜单开始。

这里是我的代码:

代码语言:javascript
运行
复制
package mainframe;

import javax.swing.*;

public class menuBar extends JMenuBar {
    JMenuBar mainMenu = JMenuBar("Menu");
}

我的错误:

代码语言:javascript
运行
复制
error: cannot find symbol
  JMenuBar mainMenu = JMenuBar("Menu");
  symbol:   method JMenuBar(String)
  location: class menuBar
1 error

所以无论如何。我不太清楚“找不到符号错误”是什么意思。也许我找错了。但每次我在谷歌上搜索时,都会遇到更复杂的问题,没有明确的答案。任何关于我做错了什么,或者什么是找不到符号错误的建议,我们都会非常感激。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-28 22:48:40

针对这里的特定代码,我建议您不要扩展JMenuBar类。您可能在许多扩展JFrame类的教程或示例中看到过这种情况,尽管这被认为是不良做法。要向窗口添加一个JMenuBar,我建议执行以下操作:

代码语言:javascript
运行
复制
public class MyProgram {
    JFrame frame;
    public MyProgram() {
        ...
        frame = new JFrame();
        JMenuBar mainMenu = new JMenuBar();
        JMenu fileMenu = new JMenu("File");
        fileMenu.add(new JMenuItem("Open..."));
        mainMenu.add(fileMenu); // adds a single JMenu to the menubar
        frame.setJMenuBar(mainMenu); // adds the entire menubar to the window
        ...
        frame.setVisible();
        ...
    }

扩展JMenuBar类的唯一原因是,如果您希望生成一个在子类中定义的方法具有额外功能的类,但这似乎不太可能,特别是考虑到您只是在学习Swing。

票数 1
EN

Stack Overflow用户

发布于 2013-05-28 22:29:51

JMenuBar的构造函数从不使用任何参数。还记得在实例化(创建一个新对象的实例)时使用new关键字。考虑使用以下代码:

代码语言:javascript
运行
复制
JMenuBar mainMenu = new JMenuBar();
JMenu fileMenu = new JMenu("File");
mainMenu.add(fileMenu);
票数 1
EN

Stack Overflow用户

发布于 2013-05-28 22:26:59

代码语言:javascript
运行
复制
JMenuBar mainMenu = JMenuBar("Menu");

应该是

代码语言:javascript
运行
复制
JMenuBar mainMenu = new JMenuBar("Menu");

您忘记了new关键字。在创建带有构造函数的新对象时,必须始终使用new。否则,Java会认为它是一种方法,而实际上并非如此。

此外,如果您查看这里的文件。您会发现JMenuBar的构造函数不带任何参数。因此,不要传递任何内容:

代码语言:javascript
运行
复制
JMenuBar mainMenu = new JMenuBar();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16802506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档