关于控件属性引用的问题,请各位给个帮助
发布网友
发布时间:2024-10-24 05:00
我来回答
共3个回答
热心网友
时间:2024-10-25 03:05
三个文件是没有问题的。
关键是你按钮定义在JPanel1里。
这样,在按钮发生事件时,JPanel1中无法访问JPanel2实例。
关键问题在于,从组件层次来说,JPanel1和JPanel是不包含的,那么在一个内部无法访问另一个的(正常情况下)。
既然你把2个JPanel分开写了,就说明有分开的必要性。特别是大项目,要尽量使类的耦合性低。
对于这种问题,有这样一种解决方法。
你想让按钮事件触发JPanel2显示,这个调度属性高一层次的,也就是窗口一级的,不能发生在JPanel1里。
那么,你自己设计一个事件类、事件接口,在JPanel1允许注册事件并且使用Vector或ArrayList管理事件。当按钮点击,回调事件的方法。
在窗口中,向JPanel1注册事件。这样,调度工作就放在了窗口里了。
这种方法能使类的耦合性尽量低。
还有种次一些的方法,在构造JPanel1时,向JPanel1传递JPanel2。
热心网友
时间:2024-10-25 03:00
你就1个JFrame
你2个JPanel都是JFrame的属性,都写在JFrame类中,触发事件也写在JFrame类中,就没必要JFrame.XX
别弄成3个文件,不合理,就一个(JFrame)类文件
然后在事件中写 JPanel2.setVisible(true)
热心网友
时间:2024-10-25 03:03
和继承有关系吗?没写过C/S结构的