从Java Swing组件中检索对象

3
我一直在开发一个Java Swing项目,需要获取创建面板的对象/实例,以便调用特定于该实例的简单保存方法。您有一个带有JTabbedPane的JFrame,其中的选项卡是通过实例化一个类来创建的,该类构建了一个JPanel并将其添加到JTabbedPane中,我需要从所选JPanel /选项卡中找到特定的实例,然后调用它的保存方法。 有什么想法吗?感谢您的时间!
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.
}

我认为为了得到最好的具体帮助,您需要告诉我们更多关于您当前代码的细节。您是否使用代码生成软件来创建GUI,例如NetBean的GUI创建器? - Hovercraft Full Of Eels
2
不,我正在手动编写代码,以更好地学习Java和Swing。 - user1305495
3个回答

1

我发现我所需要做的就是将新的标签页对象存储在一个ArrayList中derp。不过还是谢谢大家的尝试!


恭喜修复成功!当您有时间时,请确保将您的答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯~ - Andrew Kozak
哦,在此之前,我需要说一下,这个问题是由于类扩展的误用引起的。当你扩展一个类时,它本身就成为了你所扩展的对象,这意味着你可以在其中运行保存命令(在我的情况下)。只要记住使用“this”关键字来引用类本身即可! - user1305495

0

我知道这听起来很蠢,但我该怎么做呢?我从未直接使用过指针,更不用说在一个没有典型指针的语言中了。><谢谢你的回复! - user1305495
@user1305495的意思是给你的GUI类一个变量,用于保存对其创建者的引用,仅此而已。 - Hovercraft Full Of Eels
我认为你有误解,我会更新问题并提供一些伪代码来进一步阐述,因为用其他方式解释让我有点头痛... - user1305495
亲爱的Edit, 恐怕getSelectedComponent/index返回的是面板。这个问题的整个重点是看我能否从该面板获取对象 :/ 不过还是感谢你的努力! - user1305495

0

与其仅仅连接到原始创建者,我的方法是创建/使用一个明确支持保存的接口。我在TUS中为此创建了一些东西,这是我的sourceforge项目。

http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/io/filepersist/

请查看Persistable和Persistable2。当然,任何东西都可以是Persistable,但抽象化使您可以避免与创建者类的显式联系。


我可能会尝试一下,但是我担心我在界面方面不是最熟练的人 >< - user1305495

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接