从Java Swing组件检索对象

从Java Swing组件检索对象,java,swing,Java,Swing,我一直在从事一个JavaSwing项目,在该项目中,我需要检索创建面板的对象/实例,以便调用该实例特有的简单save方法 如果有一个JFrame,它有一个JTabbedPane,它的选项卡是通过实例化一个类创建的,该类构建了一个JPanel并将其添加到JTabbedPane,那么我需要从JTabbedPane上选定的JPanel/tab中找到特定的实例,然后调用它的save方法 有什么想法吗? 谢谢你的时间 public class frame extends JFrame implements

我一直在从事一个JavaSwing项目,在该项目中,我需要检索创建面板的对象/实例,以便调用该实例特有的简单save方法

如果有一个JFrame,它有一个JTabbedPane,它的选项卡是通过实例化一个类创建的,该类构建了一个JPanel并将其添加到JTabbedPane,那么我需要从JTabbedPane上选定的JPanel/tab中找到特定的实例,然后调用它的save方法

有什么想法吗? 谢谢你的时间

public class frame extends JFrame implements ActionListener{
 Builds a frame dubbed "frame" that is static.
 Builds a static JTabbedPane dubbed "pane"and adds it to the frame.
 Creates a button that creates a new instance of sheet.

 public void actionPerformed(MAGIC!){
  See if a button on the panel has been pressed and uses the currently selected tab to locate the correct instance of sheet to run it's save method.
 }
}

public class sheet extends JPanel{
 In constructor makes a JPanel and adds it to "pane"

 Describes a save method that outputs a variable unique to the instance.
}

您可以在新的JPanel中添加一个指向创建者实例的字段。我不认为有任何这样的方法可以指向API中的父类

--编辑-- 你可能想检查一下
getSelectedIndex()可能就是您想要的。

我的方法是创建/使用一个专门支持保存的接口,而不仅仅是连接回原始创建者。我在我的sourceforge项目TUS中为此创建了一些东西


查看Persistable和Persistable2。当然,任何东西都可以是持久的,但是抽象让您摆脱了与creator类的显式联系

我发现我所需要做的就是将新的tab对象存储在ArrayList derp中。谢谢你们的努力,伙计们

我认为,为了获得最佳的具体帮助,您需要告诉我们当前代码的更多细节。您是否使用代码生成软件来创建GUI,如NetBean的GUI creator?不,我正在手工创建,以便更好地了解Java和Swing。我知道这听起来很愚蠢,但我该如何做呢?我从未直接使用过指针,更不用说在没有典型意义上指针的语言中了不过,我还是很期待你的回答@user1305495:他的意思是简单地给你的GUI类一个变量,该变量包含对其创建者的引用,仅此而已。我想你的想法是错误的,我将用一些伪代码更新这个问题,以进一步阐述,因为以任何其他方式解释都会让我有点头疼……亲爱的编辑,恐怕getSelectedComponent/index会返回面板。这个问题的关键是看我是否能从那个面板上得到这个物体:/谢谢你的努力!我可能会尝试一下,但是我恐怕我在界面>恭喜修复方面不是最熟练的!当你有能力时,请确保将你的答案标记为“已接受”,以便其他人可以从你的成功中学习。干杯~噢,在那之前,我需要说这个问题是由于误用类扩展造成的。当您扩展一个类时,它本身就成为您扩展的对象,这意味着您可以从它运行save命令。当提到类本身时,请记住“this”关键字!