检测JPanel大小的变化来源

时间:2011-01-26 21:26:27

标签: java swing jpanel propertychangelistener

我有一个名为TablePanel的类来自JPanel。当我单击框架另一部分的复选框时,此类的实例有时会调整自身大小。

是否存在某种事件监听器或类似内容,以便我可以追踪实际导致此TablePanel调整大小的事件?

我尝试将以下内容添加到TablePanel的构造函数中:

        addPropertyChangeListener(new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent evt) {
                    System.out.println("TablePanel evt: " + evt);
            }
        });

但是当调整大小时,这不是'触发'。

1 个答案:

答案 0 :(得分:2)

我猜您正在寻找ComponentListener的componentResized事件。

虽然我不确定你为什么需要这个。面板的布局管理器应该处理面板上任何组件的大小调整/布局。

这不会为您提供更改的实际来源。源事件很可能是框架被调整大小,然后布局管理器完成它们的工作。

  

当我单击框架另一部分的复选框时,此类的实例有时会调整自身大小。

我从未见过这种情况。单击复选框不应更改其大小,因此面板上的组件没有理由再次布局。你必须有一些奇怪的代码。发布证明问题的SSCCE。