【问题标题】:Referencing a dynamic setter from a dynamic class从动态类中引用动态设置器
【发布时间】:2011-09-18 08:57:02
【问题描述】:

我正在尝试引用 setter...我收到了帮助并在解决问题之前过早选择了答案...请参见此处:Using a setter from outside a form?

所以,我正在做的是......数据进入日志并被解析,然后返回到显示的表单。

public class Log {
   private MainForm mainForm; // our MainForm variable

   public Log(MainForm mainForm) {
      // setting the MainForm variable to the correct reference in its constructor
      this.mainForm = mainForm;  
   }

   private  void consoleOut(String data) {
     System.out.println(data);
     if (mainForm != null) {
        // now we can use the reference passed in.
        mainForm.setConsoleText("data");
     }
   }
}

这是我表单中的设置器。

public class MainForm extends FrameView {
    public MainForm(SingleFrameApplication app) {
        super(app);
...........CUT FOR LENGTH.................
    public void setConsoleText(String Text){
        jTextArea2.append(Text);
    }

为简单起见进行了编辑。

由于某种原因 MainForm 在 Log 类中总是显示为 null。

如何获得对主窗体的引用?

嗯……我只是用了一个静态文本框和一个静态设置器……仍在寻找更好的主意。

【问题讨论】:

    标签: java class logging dynamic setter


    【解决方案1】:

    唯一的解释是,当您实例化 Log 时,您将 null 传递给构造函数。您是否在调用new Log(mainform)主窗体被分配之前?

    // Don't do this
    private Log log = new Log(mainForm);
    
    private MainForm mainForm = new MainForm();
    

    检查对象的构造顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多