java如何报告面板更改为父容器?
我有一个面板被一个动作改变了,它把它的子面板换成了一个最小尺寸不同的新面板。我需要通知我的JSplitPane
它的一个子面板已更改,以便我可以调用updateToPreferedSize
方法。是否有已经触发的事件需要我倾听?如果没有,我如何抛出一个家长可以捕捉到的事件来通知它
你可以在下面搜索框中键入要查询的问题!
我有一个面板被一个动作改变了,它把它的子面板换成了一个最小尺寸不同的新面板。我需要通知我的JSplitPane
它的一个子面板已更改,以便我可以调用updateToPreferedSize
方法。是否有已经触发的事件需要我倾听?如果没有,我如何抛出一个家长可以捕捉到的事件来通知它
# 1 楼答案
我不确定,但我不认为这也应该起作用:
# 2 楼答案
最简单的方法是在调出子对象的面板上触发自定义propertyChange事件,这样在调出子对象之后,它就会触发事件。这里有一个很好的例子: http://download.oracle.com/javase/tutorial/javabeans/properties/bound.html
完成此操作后,JSplitpane可以注册一个侦听器并侦听该属性,如下所述: http://download.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html
总之,在交换子级的面板中,您需要初始化PropertyChangeSupport:
然后,当您调出面板时:
在JSplitPane中,你需要这样的东西: