如何在 void 函数中获取 System.out.print 的值,并在另一个函数中使用它



我有一个函数,它是一个空函数。调用时,它会在屏幕上显示System.out.print结果。

有没有办法使用System.out.print的结果并将其放在JTextField上?

例如:

function.getList(); 包含所有代码和系统输出结果的函数

这导致:

"一些文字"

然后,我想使用这样的东西:

textField = new JTextField();

textField.setText(function.getList());

编辑:由于没有合理的方法来获取System.out.print输出的值,因此我更改了function.getList()方法以返回字符串数组列表。

假设function.getList()返回String使用JTextField.setText()并重新验证组件:

textField.setText(function.getList());
textField.revalidate();

无需创建新JTextField,只需在现有上设置文本即可。

您可以通过使用自己的PrintWriter StringWriter支持来调用System.setOut()来重定向System.out,但请不要这样做,这是一个黑客。

我建议更改函数以返回字符串而不是让它无效,然后textField.setText(function.getList());应该可以工作。

如果要将文本打印保留到控制台,则可以将System.out.print()打印的内容放在 String 变量中,并将该 String 变量传递给它。

最新更新