将面板添加到主框架

时间:2012-06-16 11:54:06

标签: java swing user-interface compiler-errors frame

我有一个名为“frame1”的主框架。在“frame1”我想添加一个面板来显示面板上的东西,但我无法将面板添加到我的主框架,即“frame1”

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

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

cannot find symbol : frame1.

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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

注意JFrame引用的经过身份验证的frame1最初是不可见的,您需要通过调用setVisible(true)使其可见

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

this.add(m1);

在这个问题上你甚至可以离开this

add(m1);

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

getContentPane().add(m1);

此外,如果您想在框架中添加多个元素,请使用layout managers