所以我有一个对象,包含一个非特定的JPanel: private static JPanel setPanel;
我在JFrame上换出的各种屏幕都有许多JPanel子类,它们的行为各不相同。现在,这些子类中的每个子类都实现一个特定的方法getKeyPress()
,并且我制作了一个包含此方法的接口,这些JPanel子类中的每个子类也都实现了该接口。我的问题是,是否可以通过通用setPanel对象引用该方法,例如:setPanel.getKeyPress()
以某种方便的方式,还是必须创建一个包含该方法的JPanel子类,然后让每个子类都成为该子类的子类?一?
...还是我必须使用其中的一个方法创建JPanel的子类,然后让每个子类都成为该子类的子类?
这就是您自己的MyJPanel
(或类似的)类(无论是抽象类还是非抽象类)要走的路。然后,MyJPanel
在整个代码中使用。这使您可以在编译时检查是否正在处理子类之一,并在需要时可以方便地添加其他方法。
你可以做
((TheInterface)setPanel).getKeyPress();
...但是它很笨拙,并且您会丢失编译时代码检查(并且所有反对强制转换的常用参数都适用)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句