2010-03-28 5 views
0

Désolé, cette application semble être chaotique, n'hésitez pas à l'éditer.Rendre java SingleFrameApplication à apparaître en deuxième

Je ai une application entièrement faite dans netbeans, qui utilise SingleFrameApplication et généré automatiquement le code GUI, appelé "MyApp", et FrameView, nommé "MyView". Maintenant, le MyApp a en quelque sorte la fonction main(), mais le MyView a tous les éléments graphiques ..

Je ne comprends pas complètement comment cela se produit, donc utilisé comme boîte noire (en quelque sorte créé la fenêtre, je n'a pas eu à se soucier pourquoi). Mais maintenant, j'ai besoin que la fenêtre soit seulement une fenêtre, ouverte par un autre JFrame. Je ne sais pas, comment accomplir cela.

MyApp, qui s'étend SingleFrameApplication, ont ces méthodes:

public class MyApp extends SingleFrameApplication { 

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

    @Override protected void configureWindow(java.awt.Window root) { 
    } 

    public static MyApp getApplication() { 
     return Application.getInstance(MyApp.class); 
    } 

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

    } 
} 

MyView a ces méthodes:

public class MyView extends FrameView { 

    public MyView(SingleFrameApplication app) { 
     super(app); 
     initComponents(); 
    } 
    private void initComponents() { 
     //all the GUI stuff is somehow defined here 
    } 
} 

Maintenant, je n'ai aucune idée comment les deux classes fonctionnent, je veux juste ce fenêtre, définie dans MyView, pour apparaître après une autre fenêtre, "ordinaire" JFrame. Comment puis-je appeler cette application MyApp/MyView?

Répondre

1

Mais maintenant, j'ai besoin que la fenêtre soit seulement une fenêtre, ouverte par un autre JFrame. Je ne sais pas, comment accomplir cela.

1.) Il est non seulement une fenêtre - c'est un swing Application Framework (Ah, les périls des constructeurs GUI ...); et -

2.) Vous n'avez pas spécifié comment vous voulez il "ouvert par un autre JFrame";

mais quelque chose comme ça devrait fonctionner si vous lancez via un JButton -

JButton launchMyApp = new JButton("launch"); 
launchMyApp.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     String[] args = {}; 
     Application.launch(MyApp.class, args); 
    } 
}); 
+0

merci ... Je ne comprends pas vraiment la distinction entre l'application, la fenêtre, cadre, frameview et ainsi de suite. Et je n'aime pas les constructeurs GUI dans les frameworks que je comprends - cependant, awt/Java n'en fait pas partie. –

+0

Droit - Je parlais de la partie "périls de constructeurs GUI" en ce qui concerne Netbeans. – Nate

Questions connexes