gpt4 book ai didi

java - 从不同类中的文本字段 JFrame 表单获取信息

转载 作者:行者123 更新时间:2023-12-02 07:33:01 25 4
gpt4 key购买 nike

好吧,我正在制作一个图书馆管理程序,并且创建了一个特殊的框架,用户可以在其中输入有关新书的详细信息。然而,我添加新书的方法是在一个单独的类(方法)中。我的问题是如何获取用户在文本字段中输入的信息?我是否必须使用 setter/getter 之类的东西,或者有更简单的方法吗?另请记住,我正在 netbeans 中使用 GUI 布局(事物),并且我实际上已经制作了表单。 (我知道这会让人皱眉,但我时间紧迫,这就是我们的教学方式。)顺便说一句,这是一个学校项目。谢谢。

Picture of the Jframe New book

最佳答案

Okay so I'm making a Library admin program and I have created a special frame where the user would enter details about a new book.

通常,详细信息窗口应该是一个对话框,并且可能是一个模式对话框。我建议您在模态 JDialog 中显示此信息,而不是在 JFrame 中。执行此操作将使从详细信息窗口提取信息更加变得更加容易。

However my method for adding a new book is in a separate class (methods). My question is how can I get the information the user enters in the text fields? Do I have to use something like getters, or is there an easier way.

这就引出了一个问题——使用 getter 有何困难?事实上,他正是我建议您使用的!请注意,您的问题本质上可以归结为“如何从另一个类的对象中获取有关一个类的对象的状态的信息”,并且对于此 getter 方法几乎是强制性的。

Also keep in mind that I am using the GUI layout (thing) in netbeans, and that I have already actually made the form. (I know it's frowned upon but I'm pressed for time and this is how we were taught.) This is a school project by the way.

这与您当前的问题无关,并且应该对其解决方案影响不大,除非您将“表单”硬编码为 JFrame,然后废弃它并重新将其作为 JPanel。

我建议:

  • 创建一个 addEditBook 模态 JDialog
  • 为其提供 getter 方法,以允许外部类能够查询其文本字段的内容。
  • 显示主程序中的对话框。
  • 由于它是模态的,因此主程序的代码流将暂停,直到处理完对话框为止。
  • 在“确定”和“取消”按钮中,设置对话框的状态(OK_STATE 或 CANCEL_STATE)并关闭对话框。实际上,最简单的方法是使用 JOptionPane 作为模式对话框,因为它具有处理此类事情的机制。如果您的 addEditBook 适合创建一个 JPanel(您在 JOptionPane 中显示的 JPanel),那么这一点很容易完成。
  • 程序流程将从显示对话框后立即在主程序中恢复
  • 查询对话框中字段的内容。

有关 JOptionPane 解决方案的示例,包括从与上面的窗口类似的多个字段请求信息的选项 Pane ,请参阅:

<小时/>

编辑
您在评论中指出:

Oh and I was wondering how can I make the field of a normal JOptionpane input dialogue come up with a word already in it like for editing it will show the information stored already?

请参阅我上面列出的示例答案,因为您将看到它们不是“普通 JOptionPane”的示例,而是显示您创建的 GUI 的 JOptionPanes。就像在显示 GUI 后很容易查询其状态一样,通过 setter<设置 GUI 的状态也同样容易/em> 方法显示之前。

关于java - 从不同类中的文本字段 JFrame 表单获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com