【问题标题】:Java: JButton that creates JTextField everytime it is pressedJava:每次按下时都会创建 JTextField 的 JButton
【发布时间】:2017-01-04 12:22:35
【问题描述】:

大家好,

我刚刚使用 Java GUI 学习了一些新东西,但遇到了一个问题。这是它的样子:

我想要一个将第二个 JPanel 中的数据添加到第一个的按钮。但不止一次。我希望它每次按下时都转到第一个 JPanel。

因此,每次按下按钮时,该按钮都应在第一个 JPanel 中各自的类别“名称”和“年龄”下方创建一个新的 JTextField。这意味着我每次都必须修改“Y”字段,因此“添加数据”按钮创建的所有新 JTextFields 都不会被堆积起来。

我不知道如何让“添加数据”按钮起作用,其他的,我知道怎么做。我知道如何使按钮创建一个 JTextField,其中包含我想要存储的数据,仅一次(使用 getText() 和 setText() ),但不知道如何在每次按下时使用不同的“y”字段创建新的 JTetFields。

感谢您的帮助。

【问题讨论】:

    标签: java eclipse swing user-interface


    【解决方案1】:
    1. 当您单击按钮添加人员时,您不应显示新的 JPanel。相反,您应该显示一个模态JDialog。 JDialog 就像一个框架,但通常只针对特定功能显示,然后关闭。

    2. 在此对话框中,您可能需要两个按钮:1) 保存数据和 2) 关闭。这将允许您在关闭对话框之前输入多人的信息。

    3. 要显示“人”信息,您可能应该使用JTable。表格允许您以行/列格式显示数据。请参阅 How to Use Tables 上的 Swing 教程中的部分,了解基本信息以帮助您说明。请注意,在这种情况下,您需要为您的表格使用DefaultTableModel,然后您可以使用addRow(...) 方法来保存“人员”信息。

    4. 当您为对话框创建类以获取“人员”信息时,您需要将DefaultTableModel 作为参数传递给该类。然后,当您单击“保存数据”按钮时,您会从两个文本字段中获取信息并更新 TableModel。表格将自动更新。

    因此,您的第一步是使用具有两列的 JTable 创建主框架。然后创建一个简单的“添加人员”按钮。然后,每次使用 addRow(...) 方法单击此按钮时,都会将硬编码数据添加到表中。完成此操作后,您可以更改按钮的逻辑以显示对话框,然后您可以在对话框中输入“人员”信息并保存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 2021-11-12
      • 2021-11-02
      • 1970-01-01
      • 2014-01-15
      • 2021-10-15
      • 1970-01-01
      相关资源
      最近更新 更多