簡體   English   中英

搖擺偵聽子布局的更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM