Newsgroup: it.comp.java
Titolo: [SWING]"Refresh" dei componenti della GUI

Salve a tutti,
in una mia funzione di gestione degli eventi effettuo alcune chiamate a
sottoprocedure. Per seguire l'andamento del programma ho creato una
JTextArea in cui visualizzare messaggi di testo. La struttura del codice è
più o meno la seguente:
{
        JTextArea msgBox=new JTextArea();
[...]
        msgBox.append("Step 1\n");
        app.func1();
        msgBox.append("Step 2\n");
        app.func2();
        msgBox.append("Step 3\n");
        app.func3();
[..]
}
Il codice funziona ma non ottengo il risultato desiderato: il testo viene
visualizzato solo alla fine della mia procedura quindi non ho la possibilità
di seguire l'andamento del programma come volevo. Ho provato ad aggiungere
repaint(), show(), revalidate().... ma non sono riuscito ad aggiornare ad
ogni step il contenuto della TextArea.
Come si fa?
--
Bye
Johnny
http://digilander.iol.it/Superpork

Come si fa?
prova usando il metodo setText() la modifica dovrebbe apparire subito

 ha scritto nel messaggio
news:3c263999...@powernews.inwind.it...


Come si fa?
Direi che dovresti fare le chiamate alle tue sottoprocedure in un altro 
thread, mi sembra il caso tipico.
Spero di aver centrato il problema ;-)
-- 
Ciao
	Fabrizio C.

ma possibile che sia così complicato fare il refresh d un componente GUI?
--
Bye
Johnny
http://digilander.iol.it/Superpork
"Fabrizio Camera" <f.came...@Mtiscali.it> ha scritto nel messaggio
news:MPG.169183868...@news.libero.it...


>già provato non funzia.
questo funziona ,dagli un'occhiata .Spero ti possa servire
(cmq ho usato setText())
Ciao
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class areatesto
{
   public static void main(String[] args)
   {
      areaFrame frame = new areaFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.show();
   }
}
class areaFrame extends JFrame
{
   public areaFrame()
   {
      setSize(500,500);
      Container contentPane = getContentPane();
      areaPanel panel = new areaPanel();
      contentPane.add(panel);
   }
}
class areaPanel extends JPanel
{
   public areaPanel()
   {
      setLayout(new BorderLayout());
      display = new JTextArea("");
      display.setEditable(false);
      add(display, BorderLayout.NORTH);
          panel = new JPanel();
      JButton bottone = new JButton("Step1 \n");
          bottone.addActionListener(new aggiungiTesto());
      panel.add(bottone);
      add(panel, BorderLayout.CENTER);
   }
   private class aggiungiTesto implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String input = event.getActionCommand();
         display.setText(display.getText() + input);
      }
   }
   private JTextArea display;
   private JPanel panel;
}

 ha scritto nel messaggio
news:3c28885d...@powernews.inwind.it...

ma possibile che sia così complicato fare il refresh d un componente GUI?
Come sempre dipende dalle esigenze.
Prova a fare un giro sul capitolo Swing del Tutorial dove si parla di 
thread e/o event handling.
HTH
-- 
Ciao e Auguri a tutti.
	Fabrizio C.

 thread e/o event handling.
OK,
ho capito (credo) quale sia il problema: le procedure di gestione degli
eventi (actionPerformed) vengono eseguite in un singolo thread in modo da
assicurare che venga terminata una procedura di gestione di un evento prima
di gestirne un'altra. Questo riguarda anche l'aggiornamento della GUI: se
eseguo codice come setText o simili dentro la procedura di gestione degli
eventi non vedrò nulla finchè questa non sarà terminata. In pratica
l'interfaccia è congelata finchè non termina la procedura di gestione degli
eventi.
Tutto giusto fin qui?
Quello che non ho capito però è come fare per eseguire l'aggiornamento della
GUI in un thread separato (quindi un thread che venga eseguito in parallelo
con quello di gestione degli eventi, sempre se ho capito bene).
Qualcuno saprebbe farmi un esempio piccolo piccolo in cui le setText di cui
ho bisogno vengono eseguite in un thread separato?
Grazie
--
Bye
Johnny
http://digilander.iol.it/Superpork
"Fabrizio Camera" <f.came...@Mtiscali.it> ha scritto nel messaggio
news:MPG.169405bb1...@news.libero.it...
