Java:查找来电者班级

时间:2010-05-22 09:43:00

标签: java class

我有一个调用类(A)的主JFrame,该类调用另一个类(B)
在B级中,我需要对主JFrame的参考 如何找到?

由于

3 个答案:

答案 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类访问框架。