2010-06-22 5 views
2

Je viens de commencer avec la programmation Gui dans netbeans (en utilisant le modèle Java Desktop Application). Cependant je suis déjà coincé. Dans ma classe principale j'ai quelques méthodes qui peuvent être appelées du Gui. Ces méthodes font quelque chose sur un fichier externe et en cas d'erreur, ils devraient ouvrir une nouvelle fenêtre, affichant un message d'erreur.accéder aux méthodes membres de la classe auxiliaire de la classe principale (éditeur swing de netbeans)

Cependant, je ne peux pas accéder aux méthodes membres de la classe Gui depuis ma classe principale, donc je ne peux pas ouvrir la nouvelle fenêtre. Voici comment la classe principale netbeans (= MyProgrammApp.class) appelle la classe gui (MyProgrammView.class).

//MyProgrammApp.class: 
public class MyProgrammApp extends SingleFrameApplication { 

@Override protected void startup() { 
     show(new MyProgrammView(this)); 
    } 

public static void main(String[] args) { 
     launch(MyProgrammApp.class, args); 
    } 

    [...]  
    } 

et c'est la partie pertinente du constructeur de la classe IUG:

//MyProgrammView.class: 
public MyProgrammView(SingleFrameApplication app) { 
     super(app); 

     initComponents(); 

     [...] 
     } 

cette classe IUG a une méthode publique showErrorBox, qui ouvre la fenêtre avec les informations d'erreur.

Mon problème est que je ne comprends pas le processus avec lequel l'instance de l'interface graphique est créée. J'apprécierais grandement, si quelqu'un peut m'éclairer, de la façon dont je peux accéder à la méthode showErrorBox à partir de MyProgrammApp.class.

Répondre

2

Dans cette ligne:

show(new MyProgrammView(this)); 

Vous créez votre cadre, et il devient AFFICHES, mais vous ne jamais enregistrer la référence au cadre partout.

Ce que vous devez faire est de créer l'application et l'enregistrer dans un membre. Ensuite, vous pouvez appeler des méthodes à ce sujet.

Je ne sais pas exactement comment Netbeans démarre l'application, mais vous feriez quelque chose de semblable à ce qui suit:

MyProgrammView view = new MyProgrammView(this) 
show(view); 

// now you can call methods on view 
view.showErrorBox(); 
+0

Wow, qui était une réponse rapide. Cela fonctionne parfaitement. Merci beaucoup. – ftiaronsem

+0

@ ~ forum Vous êtes les bienvenus, heureux d'avoir pu aider – jjnguy

Questions connexes