抱歉,但是我坐了很多小时写代码后才感到困惑。

情况:

我有两个JFrame。这些是不同的Java类-其中一个是FirstGUI,我们可以从中调用另一个称为SecondGUI的JFrame。好的-清楚。
我也有一个称为Processor的类,其中有诸如“ connectToPort”或“ disconnectFromPort”之类的特定方法。

另外,在FirstGUI(具有main方法)中,我将FirstGUI和SecondGUI作为参数创建SecondGUI对象(并将setVisible设置为false)和Processor对象。

问题:

我要从FirstGUI中调出SecondGUI(通过setVisible设置为true)-确定,完成。但是如何从SecondGUI JFrame中调用在开始处创建的Processor对象呢?调用SAME对象很重要,因为Processor方法可以例如在FirstGUI JFrame.JTextPane组件中设置文本,并将项目添加到SecondGUI的JComboBox。

我不知道如何解决这个问题,我总是收到NullPointerException。

编辑:
我想补充一点,在创建SecondGUI时,我不能将Processor对象作为参数传递,因为Second GUI是较早创建的,并且在创建Processor时是参数...这就是问题所在。

最佳答案

构造第二个GUI(子)时,启动类(FirstGUI)可以在构造函数中传递self,并且还保留对构造对象的引用。现在,两个GUI相互引用:

class F1 extends JFrame {
   F2 child;

   void createF2() {
     child = new F2(this);
     child.setVisible(true);
   }
}

class F2 extends JFrame {
   final F1 parent;
   F2(F1 parent) { this.parent = parent; };
}

关于java - 在几个JFrame和类中传递变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15865444/

10-10 08:30