2010-12-27 6 views
3

Ok, ich habe eine Liste von Objekten. Ich muss einen Modal JDialog zeigen und dann diese Liste von Objekten übergeben und sie auf sie wirken lassen. Das Problem ist, dass, wenn ich .show() anrufe, es den EDT entführt. Die ideale Situation wäre, die Liste an den Konstruktor übergeben zu können und dann, wenn der Dialog angezeigt wird, die betreffende Funktion auszuführen. In C# würde ich das Loaded-Ereignis dafür verwenden, aber wie es geht, entgeht mir ein JDialog.Wie mache ich einen modalen JDialog Code sofort nach der Anzeige

Gedanken?

Antwort

4
JDialog dialog = new JDialog(...); 
... 
dialog.addComponentListener(new ComponentAdapter() 
{ 
    public void componentShown(ComponentEvent e) 
    { 
     System.out.println("Time to do something"); 
    } 
}); 
dialog.setVisible(true); 
1
JDialog dialog = new JDialog(...); 
dialog.addWindowListener(new WindowAdaper() { 
    @Override 
    public void windowOpened(WindowEvent e) { 
     super.windowOpened(e); 
     // do something 
    } 
}); 

Sie erhalten die Idee.