2016-05-23 10 views
-1

Ich möchte ein Jframe aus einer anderen Klasse (Hauptklasse) erstellen und dann möchte ich Jframe nur anzeigen, wenn kein Fehler in der Hauptmethode. Ansonsten möchte ich & Anzeigedialog erstellen, indem ich dasselbe jframe übergebe. Ich habe das Thread-Konzept irgendwo vergessen, gib mir die Lösung, ich probierte unter dem Code aus, der "abcde" druckt aber das Rahmenprogramm nicht komplett anzeigt.So erstellen Sie JFrame von einer anderen Hauptklasse als separaten Thread

Hinweis: Es gibt keine Hauptmethode in JFrame od ErrorDialog. Sie sind nur benutzerdefinierte Container.

public class Start{ 

    public static Main mf=null; 

    public static void main(String args[]){ 

     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       mf = new Main(); 
      } 
     }); 
     try { 
      // Some extra code 
      System.out.println("abcde");  // this is print and then program complete 
      mf.setVisible(true);   // this line will not run 
     } catch (Exception e) { 
      java.awt.EventQueue.invokeLater(new Runnable() { 
       public void run() { 
        new ErrorDialog(mf, true).setVisible(true);; 
       } 
      }); 
     } 
    } 
} 
+0

1) Für eine bessere Hilfe früher, Posten [MCVE] oder [Kurz, Self Contained, Korrekt Beispiel] (http://www.sscce.org/). 2) Ist deine Frage * "Wie zu X?" *? Wenn ja, füge es als [bearbeiten zu der Frage] hinzu (http://stackoverflow.com/posts/37382278/edit). Wenn nicht, denken Sie an eine bestimmte Frage und machen Sie dasselbe (bearbeiten). –

+0

Das Schlüsselkonzept, das Sie zu missverstehen scheinen, ist die Bedeutung von "später" – MadProgrammer

Antwort

1

mein Vorschlag seiner Arbeits Versuchen ..

Nur invokeAndWait() Methode verwenden insted invokeLater() Verfahren zur Verwendung. Weil invokeLater() Methode erstellen NullpointerException. Aber invokeAndWait() muss innerhalb try-catch Block sein.

try { java.awt.EventQueue.invokeAndWait(new Runnable() { public void run() { mf = new Main(); } }); } catch (Exception e) { System.out.println(e); }

+0

Danke ... Für geben Sie mir Arbeitslösung .. !!!!! – JavaHacker