-3

我有2节课,

我的主类创建了一个框架,我希望另一个类向它添加内容。一点阅读 arroudn 告诉我我应该使用组件来执行此操作,但是当我运行我的代码时,框架是空的。

 public static void main(String[] args)
 {
    // create frame
    JFrame frame = new JFrame();
    final int FRAME_WIDTH = 800;
    final int FRAME_HEIGHT = 600;
    // set frame attributes
    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("My Frame");
    frame.setVisible(true);

    Component1 Com = new Component1();
    Component add = frame.add(Com);

}

我的 Component 类创建了一个 JLabel

public class Component1 extends JComponent {

   public void paintComponent()
   {
       JLabel label = new JLabel("<html>Some Text</html>");
   }
}

我没有收到任何编译错误,但是我的 JFrame 中没有任何文本。

谁能解释我做错了什么?

克里斯

4

2 回答 2

5

您需要添加. JLabel也更好地扩展JPanel而不是JComponent因为它有一个默认的布局管理器,并且将使任何添加的组件出现而无需设置组件大小。paintComponent用于自定义绘画顺便说一句。

public class Component1 extends JPanel {

   Component1() {
      JLabel label = new JLabel("<html>Some Text</html>");
      add(label);
   }
}
于 2012-12-10T20:08:30.370 回答
4

无需创建新的Component. 只要打电话frame.getContentPane().add(label)。并在此之前初始化您的标签。

于 2012-12-10T20:10:47.793 回答