-1

我有一个名为“frame1”的主框架。在“frame1”中,我想添加一个面板以在面板上显示某些内容,但我无法将面板添加到我的主框架,即“frame1”

 public void drawstack()
 {
    JPanel m1 = new JPanel(new BorderLayout());
    m1.setBorder(BorderFactory.createRaisedSoftBevelBorder());
    m1.setBackground(Color.red);
    frame1.add(m1);
 }

这是我的代码 m 在最后一行出现错误,即“frame1.add(m1);” 错误是

cannot find symbol : frame1.
4

4 回答 4

1

frame1 必须是您的类中的一个字段,或者必须作为参数传递给您的方法

于 2012-06-16T12:02:32.290 回答
1

该错误告诉您编译器找不到名为frame1. 为了使标记的语句起作用,您需要声明一个名为的变量frame1并用一个JFrame对象实例化它,如下所示:

JFrame frame1 = new JFrame();
frame1.add(m1);

注意:如果你想从同一个类的其他方法访问它,你也可以使这个变量成为类的成员。

注意JFrame:被引用的 intantiatedframe1最初是不可见的,您需要通过调用setVisible(true)它使其可见

如果您的类派生自JFrame并且您想将面板添加到当前对象表示的框架中,您可以使用this引用而不是frame1

this.add(m1);

在这种情况下,您甚至可以this省略:

add(m1);
于 2012-06-16T12:02:39.153 回答
0

显然有一个错误..你还没有初始化一个名为frame1的变量..改用..它this.add(m1);应该可以工作。

于 2012-06-16T12:01:31.340 回答
0

如果您发布的方法在您的扩展类中,JFrame您需要调用

getContentPane().add(m1);

此外,如果您想在框架中添加超过 1 个元素,请使用布局管理器

于 2012-06-16T12:04:28.957 回答