2010-03-21 3 views
0

Puis-je faire cela sans référence à l'objet dans le constructeur? En d'autres termes, toute la classe héritée de FrmTaoChild lors de la création doit ajouter le bouton dans la barre d'outils de la fenêtre principaleJava: Obtenir l'objet Mainform à partir de JInternalFrame

public class FrmTaoMain extends JFrame { 
    JToolBar tbTask = new JToolBar(); 
    public FrmTaoMain(String Caption) { 
    super(Caption); 
    ... 
    FrmTaoChild FrmChild = new FrmTaoChild(tbTask,"test"); 

    } 
} 

public class FrmTaoChild extends JInternalFrame { 
    public FrmTaoChild(JToolBar tbTask, String Caption) 
    { 
    super (Caption); 
    JButton btnTask = new JButton(Caption); 
    tbTask.add(btnTask); 
    } 
} 

Répondre

2

Comme indiqué dans How to Use Internal Frames, « En règle générale, vous ajoutez des cadres internes à un volet de bureau. » Au lieu de passer en paramètre JToolBar, considérez avoir FrmTaoChild pour fournir un Action que FrmTaoMain peut utiliser pour le bouton JToolBar correspondant. Voir How to Use Actions pour plus. En outre, les noms de variables en Java commencent généralement en minuscules.

public class FrmTaoChild extends JInternalFrame { 

    private Action action; 

    public FrmTaoChild(String caption) { 
     super(caption); 
     action = new AbstractAction(caption) { ... } 
    } 

    public Action getAction() { 
     return action; 
    } 
} 
Questions connexes