容器,组件和可见窗口

时间:2010-11-07 17:13:02

标签: java awt

我使用 Frame 测试了下一个代码但是当我尝试绘制没有任何边框,按钮等的独立行时,我发现程序没有任何错误,并且没有显示任何行。有代码:

package helloworld;

import java.awt.*;

class Line extends Component {
    public void paint(Graphics g) {
        g.drawLine(0, 0, getWidth(), getHeight());
    }
}

public class Main {
    public static void main(String[] args) {
        Container c = new Container();
        c.add(new Line());
        c.setSize(400, 300);
        c.setVisible(true);
    }
}

也许我学到了一些错误但是如果我使用 Frame f = new Frame()它可以正常工作。 那么,我做错了什么?

1 个答案:

答案 0 :(得分:3)

默认情况下,框架具有布局(BorderLayout),可以调整放入框架中的组件的大小。

默认情况下,容器没有任何布局,因此Line不会移动或调整大小 - 它将位于0,0且宽度和高度为零。所以你不会看到它。

请参阅http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html

上的布局管理器教程