以下是我的代码,我试图画出一条从屏幕一端延伸到另一端的线,但是当我调用getWidth()和getHeight()创建线对象时,方法返回0.为什么是发生这种情况,我如何避免这种情况。为什么getHeight()和getWidth()在构造函数中返回0?我如何避免这种情况?
public class LineComponent extends JComponent {
private Shapes shape;
public LineComponent() {
shape = new Line((int) Math.round(Math.sqrt(getHeight() * getHeight() + getWidth() * getWidth()))
,new Point(getWidth()/2, getHeight()/2));
}
我需要调整我的组件大小,并且在第一次布置时我需要知道原始大小。有没有办法避免使用ComponentListener – Mike
您所拥有的“最佳”解决方案是通过重写它的getPreferredSize方法来定义组件的preferredSize。尽管如此,我们不能保证该组件将按照这个尺寸进行布局,但它会给你一个起点。 – MadProgrammer