我使用 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()它可以正常工作。 那么,我做错了什么?
答案 0 :(得分:3)
默认情况下,框架具有布局(BorderLayout),可以调整放入框架中的组件的大小。
默认情况下,容器没有任何布局,因此Line不会移动或调整大小 - 它将位于0,0且宽度和高度为零。所以你不会看到它。
请参阅http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html
上的布局管理器教程