【问题标题】:Java Swing GUI Console ComponentJava Swing GUI 控制台组件
【发布时间】:2015-07-26 14:24:31
【问题描述】:

我目前正在创建我的第一个 java swing 应用程序,作为 GUI 的一部分,我有一个 JTextField 组件形式的小型控制台。我希望能够使用 console.print(String) 之类的命令从应用程序中的任何位置打印到此控制台。我相信我应该使用打印流,但我无法弄清楚如何从任何地方(即在另一个不引用控制台的类中)使其正常工作。
我还想保持打印到 Eclipse 控制台的能力。对此问题的任何帮助将不胜感激。

【问题讨论】:

  • 因此,例如,应用程序处理来自与此 GUI 元素完全分离的某个单独类的项目的下载。我想在下载发生时从该下载元素向控制台发送一条消息以提供状态更新。

标签: java swing io


【解决方案1】:

创建一个用于接受和分发控制台字符串的类;给它一个打印到控制台的静态方法。为该类提供对控制台组件的(静态)引用。

类似:

public MyConsole
{
  private static TextField field;
  public static void setField(TextField givenField)
  {
    field = givenField;
  }

  public static void print(String msg)
  {
    field.append(msg);
  }
}

您应用程序的其他部分可以导入 MyConsole 并调用 MyConsole.print(msg);

【讨论】:

  • 这个解决方案在我刚刚测试过的大多数情况下都能完美运行,但由于某种原因,在我有一个 System.out.println 工作的开关中,这不会打印.知道为什么会这样吗?
  • 对不起,我应该提一下,这是在一个摇摆工作流程方法中
  • System.out.println 通常将文本发送到您的程序控制台,它不会出现在 GUI 的任何位置。如果您使用命令行窗口来启动 Swing 程序(类似于“java -jar MyProgram.jar”,那么 System.out.println 消息将出现在该窗口中。
猜你喜欢
  • 2011-02-17
  • 1970-01-01
  • 2013-05-05
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 2012-11-03
  • 2020-08-11
相关资源
最近更新 更多