我有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中没有任何文本。
有谁能解释我做错了什么?
克里斯
答案 0 :(得分:5)
您需要添加 JLabel
。也可以更好地扩展JPanel
而不是JComponent
,因为它具有默认layout manager,并且可以在不需要设置组件大小的情况下显示任何添加的组件。 paintComponent
用于自定义绘画BTW。
public class Component1 extends JPanel {
Component1() {
JLabel label = new JLabel("<html>Some Text</html>");
add(label);
}
}
答案 1 :(得分:4)
无需创建新的Component
。只需致电frame.getContentPane().add(label)
即可。并在此之前初始化您的标签。