2

我在名为 ball 和 top 的包中创建了两个类。并想将它们添加到我的第三类 whitch extends JFrame 中。我这样做了,但是当我使用 Container 时,对象没有显示在 JFrame 中。并且没有 Container 只有其中一个添加到 JFrame 。这是我的代码:

package mytry;

import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class trypanel extends JFrame {
JFrame frame = new JFrame();
Container panel = new Container();
public trypanel(){
    toop c = new toop();
    ball a = new ball(20,20,1);
    frame.setVisible(true);
    frame.setSize(550,550);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    panel.add(c);
    panel.add(a);
    frame.getContentPane().add(panel);
    c.run();

}
}

如何将我的类添加到 JFrame 中?

4

1 回答 1

1

由于您的类扩展了 JFrame,因此应删除此行:

JFrame frame = new JFrame();

这意味着所有对 frame 的引用也应该被删除,或者改成这个。

而不是使用 Container 你想使用 JPanel,所以改变这一行:

Container panel = new Container();

JPanel panel = new JPanel();

并将面板添加到构造函数中的框架中,如下所示:

this.add(panel);

而不是使用 frame.getContentPane().add(panel);

即使我没有尝试过您的代码,这也应该可以。

您可能还希望将 LayoutManager 与 JPanel 一起使用,以确保事物的正确布局。

于 2013-06-22T10:48:59.907 回答