一尘不染

使用组件将jlabel添加到jframe

java

我有两节课

我的主要班级创建了一个框架,我希望另一个班级为其添加内容。一读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中没有任何文本。

谁能解释我在做什么错?

克里斯


阅读 397

收藏
2020-12-03

共1个答案

一尘不染

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

public class Component1 extends JPanel {

   Component1() {
      JLabel label = new JLabel("<html>Some Text</html>");
      add(label);
   }
}
2020-12-03