Java 使用ContentPane';jcs组件功能

Java 使用ContentPane';jcs组件功能,java,swing,Java,Swing,Fred Swartz在关于Java GUI编程的说明中写道(更具体地说,是关于访问和使用组件ContentPane的最佳方法) 。。。如果我们[通过调用 getContentPane()在JFrame]上,它实际上是一个 JPanel,但我们确实无法利用它的功能 由JComponent添加 -- 在这种情况下,是什么禁止某人使用JPanel的JComponent功能JPanel扩展了JComponent,因此JPanel不应该不受阻碍地访问JComponent的方法吗?在他关于使用返回组件的评

Fred Swartz在关于Java GUI编程的说明中写道(更具体地说,是关于访问和使用组件ContentPane的最佳方法)

。。。如果我们[通过调用
getContentPane()
JFrame
]上,它实际上是一个
JPanel
,但我们确实无法利用它的功能 由
JComponent
添加

--


在这种情况下,是什么禁止某人使用
JPanel
JComponent
功能
JPanel
扩展了
JComponent
,因此
JPanel
不应该不受阻碍地访问
JComponent
的方法吗?

在他关于使用返回组件的评论中进一步阅读:


如果我们将其向下转换为JPanel,我们会创建脆弱的代码,因为与getContentPane()的约定是返回一个容器,并且不能保证将来的版本会继续返回JPanel

这一点解释了为什么我们不应该为了使用JPanel的功能而将返回的JComponent强制转换为JPanel,而不是为什么不能使用JComponent功能。