使用组件将jlabel添加到jframe

我有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("Some Text"); } } 

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

谁能解释我做错了什么?

克里斯

您需要添加 JLabel 。 也可以更好地扩展JPanel而不是JComponent因为它具有默认的布局管理器,并且无需设置组件大小即可显示任何添加的组件。 paintComponent用于自定义绘画BTW。

 public class Component1 extends JPanel { Component1() { JLabel label = new JLabel("Some Text"); add(label); } } 

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