以下是我的代碼,我試圖畫出一條從屏幕一端延伸到另一端的線,但是當我調用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