![](/img/trans.png)
[英]Java swing components layout position changes after restoring a minimized window
[英]Swing listen for child layout changes
我有一個JPanel,當其布局更改時,我需要重新布局父級。 這可以使用panel.getParent()。validate()輕松完成,但是問題是,我並不總是知道它的直接父級,還是樹中某個位置的某些父級確實是需要驗證的父級。 父組件是否可以偵聽以查看其子組件何時重新布置,以便父組件可以自己中繼出去。
編輯:澄清
在我的情況下,父級有一些額外的組件需要在子級更改時進行中繼,但這並非總是如此。 相同的孩子可以用在另一位家長上,而該家長不需要中繼,因此我想讓家長決定是否/何時應該中繼出去。
// this layoutChangedListener is what I'm trying to accomplish
child.addLayoutChangedListener(new LayoutChangedListener() {
public void layoutChanged() {
parent.validate();
}
});
謝謝,
傑夫
您可以在父類中implements LayoutChangedListener
,並且在初始化子級時,應將父級添加為偵聽器。 這樣,您僅需調用validate函數。
一個小例子:
class Parent extends JPanel implements LayoutChangedListener {
//Your class code
...
// The LayoutChangedListener function
public void layoutChanged() {
validate();
}
}
您還必須更改the child.addLayoutListener()
行。 新的必須如下所示: child.addLayoutListener(this)
可能這不是最漂亮的方法,但是可以!
問候!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.