从 Java Swing 组件中检索对象

Posted

技术标签:

【中文标题】从 Java Swing 组件中检索对象【英文标题】:Retrieve object from a Java Swing component 【发布时间】:2012-03-31 20:25:51 【问题描述】:

我一直在从事 Java Swing 项目,我需要检索创建面板的对象/实例,以便调用特定于该实例的简单保存方法。

您有一个带有 JTabbedPane 的 JFrame,该 JFrame 具有通过实例化构建 JPanel 并将其添加到 JTabbedPane 的类创建的选项卡,我需要从 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 creator? 不,我正在手工制作,以便更好地了解 Java 和 Swing。 【参考方案1】:

我发现我需要做的就是将新的选项卡对象存储在 ArrayList derp 中。感谢你们的尝试!

【讨论】:

恭喜修复!如果有能力,请确保将您的答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯~ 哦,在此之前,我需要说这个问题是由滥用类扩展引起的。当你扩展一个类时,它本身就成为你扩展的对象,这意味着你可以——在我的例子中——从中运行保存命令。引用类本身时,请记住“this”关键字!【参考方案2】:

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

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

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

【讨论】:

我可以试试这个,但我怕我不是最熟练的接口> 【参考方案3】:

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

--编辑-- 你可能想检查 http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html getSelectedIndex() 可能就是你要找的。​​p>

【讨论】:

我知道这听起来很愚蠢,但我该怎么做呢?我从来没有直接使用过指针,更不用说在没有典型意义上的指针的语言中了。 > @user1305495:他的意思是简单地给你的 GUI 类一个变量来保存对其创建者的引用,仅此而已。 我认为您的想法有误,我将用一些伪代码更新问题以进一步详细说明,因为以任何其他方式解释让我有点头疼... 亲爱的编辑,恐怕 getSelectedComponent/index 会返回面板。这个问题的重点是看看我是否可以从该面板中获取对象:/ 不过感谢您的努力!

以上是关于从 Java Swing 组件中检索对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jdbc 和 java-swing 从特定列中检索完整的 xml(DataType as XMLTYPE)

从java中的对象表中检索结构类型

如何从 JButton 中检索数据?

从Resultset scala中检索对象数组

从文本字段中提取空数据。表已填充,但无法检索对象。 Java/JavaFX

Vuejs 2将道具对象传递给子组件并检索