我一直在使用JFrames扩展NetBeans上的其他JFrames创建一个相当复杂的applet,并且在从以前的JFrame屏幕访问数据时遇到了问题。看下图:
我的小程序以一个主屏幕(MainScreen
)打开,该主屏幕带有一个用于访问用于编辑.xls页面(EditScore
)的新页面的按钮。该页面扩展了一种骨架JFrame(MenuSkeleton
),这是EditScore
和其他页面(分别称为Edit1
和Edit2
)的通用形式,可以通过{ {1}}。我使用MainScreen
是因为这两个页面彼此之间仅稍有不同。
MenuSkeleton
在MenuSkeleton
中打开文件选择器,该文件选择器允许用户选择.xls页面进行编辑,并将该页面的名称保存为整数EditScore
(保存在{{ 1}})。因此,xlsName
在MenuSkeleton
中被初始化为空字符串,但在xlsName
中被赋予了新值。
MenuSkeleton
有一个按钮,用于打开.xls编辑器(EditScore
)。 EditScore
扩展了EditingWindow
,扩展了EditingWindow
,因为:
-我需要访问WindowSkeleton
中的MenuSkeleton
-xlsName
无法扩展WindowSkeleton
,因为有时它是通过WindowSkeleton
和EditScore
调用的,甚至没有打开Edit1
。
我的问题是访问Edit2
,我可以在MenuSkeleton和EditScore中正常访问EditScore
,但是一旦尝试在xlsName.
中访问它,或者xlsName
,它为空。我猜这意味着在WindowSkeleton
中扩展EditingWindow
时会创建一个新实例。我有办法访问MenuSkeleton
中给出的值WindowSkeleton
吗?
感谢您阅读这个荒谬的问题!很抱歉,时间如此长而且令人困惑-我将根据收到的任何建议进行添加/修改。
答案 0 :(得分:1)
据我了解,EditingWindow
和EditScore
都扩展了MenuSkeleton
。但是EditingWindow
也扩展了WindowSkeleton
。尝试绕过WindowSkeleton
,并直接从EditingWindow
扩展MenuSkeleton
。从两个类(其中一个已经是子类)扩展会引起问题。希望这会有所帮助。