【问题标题】:Working with JTextField object in Java在 Java 中使用 JTextField 对象
【发布时间】:2026-01-21 10:45:02
【问题描述】:

我承认这对你们中的许多人来说是一个愚蠢的问题!首先我想说,就图形用户界面而言,我的java知识很低!我的文本字段有问题。我想获取一个 JTextField 对象的值并将其显示在另一个 JTextField 对象中!这是我尝试过的,但它不起作用!

       textField2.setText(textField1.getText());

问题是我有两个框架对象,每个对象都有一个 textField 对象,我想将 jFrame1jTextField1 中的一个值复制到 jTextField2 jFrame2 的 strong> 。

【问题讨论】:

  • 怎么不工作了?这个 sn-p 在您的代码中的哪个位置运行?你确定在运行时 textField1 中有一些文本吗?

标签: java swing user-interface jtextfield


【解决方案1】:

问题有效,但您提供的信息量无效。除非您提供足够的详细信息以便我们了解问题所在,否则无法帮助您。

戴上我的读心术,我猜你的问题是你在程序启动时调用了上面的这个方法,并期望如果你更新一个 JTextField,另一个会自动更新,但是事实并非如此。当您拨打此电话时:

textField2.setText(textField1.getText());

您所做的只是将保存在第一个字段中的字符串放入第二个字段。在程序启动时,这可能为空,但即使它包含文本,字符串也是不可变的并且永远不会改变,即使第一个字段的文本发生变化。

如果您希望一个字段始终包含与另一个字段相同的文本,请让它们共享相同的模型

textField2.setDocument(textField1.getDocument()); // * edited per mKorbel's rec

另一方面,如果您的目标是从一个 JTextField 获取文本并将其放入另一个但仅当用户选择这样做时,请使用添加到 JButton 或第一个 JTextfield 本身的 ActionListener (当插入符号在该字段中时,通过按 Enter 激活),然后在该侦听器中,放置您的代码行:

textField2.setText(textField1.getText());

【讨论】:

  • @mKorbel:当我发布代码而不进行测试时会发生这种情况。你的推荐没有“可能”——谢谢!!!
  • 我们都感谢 (@trashgod),顺便说一句,我今天需要此信息,这是快速回复的原因,
  • @Xris:不客气。如果您想学习 Swing 编程,请放弃 NetBeans 生成的代码,转至 Swing 教程,并学习手动编写代码。