2010-05-22 5 views
1

J'ai une principale JFrame qui appelle une classe (A) et que la classe appelle une autre classe (B)
Dans la classe B je besoin d'un refrence à JFrame principal
Comment trouver ça?Java: Trouver l'appelant classe

Merci

+2

Vous devez transmettre cette référence de JFrame à A à B .. – halfdan

+0

Merci beaucoup – RYN

Répondre

3

Vous pouvez passer une référence du JFrame aux classes comme si

public class SomeFrame extends JFrame { 
. 
. 
. 
ClassA classA = new ClassA(arg1, arg2..., this, ...); 
. 
. 
. 

En ClasseA:

public class ClassA { 
private JFrame someFrame; 
public ClassA(arg1, arg2... JFrame someFrame,...) 
{ 
this.someFrame = someFrame; 
. 
. 
. 
ClassB classB = new ClassB(arg1, arg2, this.someFrame, ...); 
. 
. 
. 

En ClassB:

public class ClassB { 
private JFrame someFrame; 

public ClassB(arg1, arg2, JFrame someFrame, ...) { 
this.someFrame = someFrame; 
. 
. 
. 
1

Vous pouvez utiliser le motif de conception Inversion of Control (IoC) pour éviter le couplage de vos classes. Une implémentation spécifique de l'IoC est Dependency Injection. Si vous utilisez Java, vous pouvez utiliser Spring pour ne pas avoir à vous soucier de l'implémentation de l'injection de dépendance.

En termes généraux, il y a un conteneur qui prend soin des références. Dans votre cas, vous pouvez demander au conteneur d'injecter votre cadre principal dans la classe B afin que le cadre soit accessible depuis la classe B.

Questions connexes