2007年8月14日 星期二

[Java] 何時呼叫 invalidate 與 validate ?

當你的元件容器(如: JFrame 或 JPanel) 已經顯示出來時,
如果
我們動態增加或刪除按鈕或 Panel , 會因為元件的大小而改變原先的 layout.

所以這時需要呼叫 invalidate來,
標記包含這些元件的容器, 需要重新安排位置.

Java 系統會在適當的時機, 呼叫 validate 進行實際的重新安排元件位置的動作.

ex:

class A extends JFrame{
public A(){
setSize(320,240);
setVisible(true);
}

public void add(){
getContentPane().add(new JButton("1"));
getContentPane().add(new JButton("2"));
}
}

public class Main{
public static void main(){
A objA=new A();
objA.add();

// 這裡請呼叫 invalidate 要求 objA 重新排列
objA.invalidate();
}
}

沒有留言:

張貼留言