在另一个类的JTextArea中写一行

时间:2012-10-01 20:38:23

标签: java swing jtextarea

我正在尝试在我的类'Visual'中使用一个方法将一行代码写入JTextArea,当我从'Visual'调用它时它打印但是当我从'Login'调用它时它只打印Text进入控制台,而不是TextArea。

private static Visual Visual;
Visual.WriteLine("I'm sorry, your username or password is incorrect. Please try again.");

private static Visual Visual = new Visual();
Visual.WriteLine("I'm sorry, your username or password is incorrect. Please try again.");

不要工作表单'登录'

但是,

WriteLine("Test"); 

来自'Visual',即该方法所在的类。

这是'Visual'中的方法

public void WriteLine(String Text) {
    System.out.println(Text);
    SystemFeed.append(Text.toString() + "\n");
    SystemFeed.setCaretPosition(SystemFeed.getDocument().getLength());
}

1 个答案:

答案 0 :(得分:3)

我只能根据目前提供的信息进行猜测(意思是请向我们提供有关您问题的更多相关信息!)但我担心您可能遇到参考问题,即您尝试编写的GUI参考与显示的不一样。建议:

  • 删除所有不必要的静态变量,包括Visual变量。使它们成为实例变量。
  • 如果通过这样做会出现错误,解决方案不是使Visual静态,而是获取对此类的正确实例的引用。
  • 检查您的程序在其中调用new Visual(...)的次数。它应该只进行一次此调用。考虑在Visual构造函数中放置System.out.println("New Visual created")以查看是这样的。
  • 将可视化GUI的有效引用传递给需要在此对象上调用方法的任何对象。因此,如果您的Login对象需要调用Visual对象的方法,请为Login提供一个public void setVisual(Visual visual)方法,以允许它接受正确的Visual引用,确保在设置Login类时调用此方法一次,然后确保在Login中使用此引用进行Visual方法调用。

如果这没有用,请告诉我们更多信息,最好是sscce