我只是试图找出在Java中复制Windows Forms.Panel
非常有用的功能的最佳方法。基本上,当您禁用Windows Forms.Panel
时,所有子控件也都设置为禁用。但是,其启用的属性保留,以便在再次启用Panel
时,在禁用Panel之前禁用的任何子控件,仍然禁用
我可以为JPanel
添加一个属性监听器,当它的enabled属性发生变化时触发,然后遍历所有JPanel
的组件并将它们设置为禁用,但这不会保留组件的已启用属性。
有什么建议吗?
答案 0 :(得分:2)
可以在Disabled Panel条目中找到更复杂的解决方案。在内部,它使用mlk建议的集合来跟踪启用的组件。即使您不喜欢建议的解决方案,您仍然可以使用Swing Utils类轻松获取面板上的所有组件。
答案 1 :(得分:1)
将已禁用的组件存储在集合中,并在重新启用它们时检查此集合。