2

我正在尝试在我的类“Visual”中使用方法将一行代码写入 JTextArea,当我从“Visual”调用它时它会打印,但是当我从“Login”调用它时它只会将文本打印到控制台,而不是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”开始工作。

这是“视觉”中的方法

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

1 回答 1

3

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

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

再次,如果这没有帮助,那么告诉我们更多,最好是sscce

于 2012-10-01T21:34:15.217 回答