我有一个调用类(A)的主JFrame,该类调用另一个类(B)
在B级中,我需要对主JFrame的参考
如何找到?
由于
答案 0 :(得分:3)
您可以将JFrame的引用传递给类似
的类public class SomeFrame extends JFrame {
.
.
.
ClassA classA = new ClassA(arg1, arg2..., this, ...);
.
.
.
在ClassA中:
public class ClassA {
private JFrame someFrame;
public ClassA(arg1, arg2... JFrame someFrame,...)
{
this.someFrame = someFrame;
.
.
.
ClassB classB = new ClassB(arg1, arg2, this.someFrame, ...);
.
.
.
在ClassB中:
public class ClassB {
private JFrame someFrame;
public ClassB(arg1, arg2, JFrame someFrame, ...) {
this.someFrame = someFrame;
.
.
.
答案 1 :(得分:2)
传递引用似乎是最好的方法。
另一种方法是查找当前线程的堆栈跟踪并从那里获取它。这是这个问题的答案之一:Java logger that automatically determines caller's class name
答案 2 :(得分:1)
您可以使用Inversion of Control(IoC)设计模式来避免耦合您的类。 IoC的具体实现是Dependency Injection。如果您使用的是Java,则可以使用Spring,这样您就不必担心依赖注入的实现了。
一般而言,有一个容器负责引用。在您的情况下,您可以指示容器将主框架注入B类,以便可以从B类访问框架。