Ho creato un finestra principale.
Alle pressione del tasto.
Vengono creati due thread,uno che mostra una jdialog ed una che esegue un 'operazione.
Alla fine dell'operazione va a scrivere sullo stdout OK.
All'interno della jdialog deve comparire una scritta.
Il problema è quando visualizzo la jdialog la scritta non viene visualizzata ma viene visualizzato solo al termine dell'operazione perchè succede questo??
codice:public class Ascoltatore implements ActionListener { private FinestraPrincipale fp; /** * @param args the command line arguments */ public Ascoltatore(){ fp = new FinestraPrincipale(this); } public final void istancePanelProgres(){ PanelProgres pp = new PanelProgres(fp); } public final void istanceOperation(){ Operazione o = new Operazione(); } public static void main(String[] args) { // TODO code application logic here new Ascoltatore(); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("premi")){ Thread t = new Thread(new Runnable(){ public void run() { istancePanelProgres(); } }); Thread t1 = new Thread(new Runnable(){ public void run() { istanceOperation(); } }); t1.start(); t.start(); try { t1.join(); System.out.println("Ok"); } catch (InterruptedException ex) { Logger.getLogger(Ascoltatore.class.getName()).log(Level.SEVERE, null, ex); } } } public class FinestraPrincipale extends JFrame{ public FinestraPrincipale(Ascoltatore asc){ this.setTitle("Example"); this.setBounds(0, 0, 700, 700); JButton jbutton = new JButton("premi"); jbutton.addActionListener(asc); this.add(BorderLayout.NORTH,jbutton); this.setVisible(true); } } public class PanelProgres { public PanelProgres(JFrame frame){ JDialog jdialog = new JDialog(frame,"jdialog",true); JPanel jpanel = new JPanel(); jpanel.add(new JLabel("Waiting..Working in progres")); jdialog.getContentPane().add(jpanel); jdialog.setBounds(100, 100, 300, 100); jdialog.setVisible(true); } } public class Operazione { public Operazione(){ for(int i = 0 ;i<10000;i++){ System.out.println("Ciao"); } } }

Rispondi quotando