Diego grazie mille davvero ma proprio non ci riesco.... ti posto il codice se vuoi dacci un occhiata altrimenti non preoccuparti ...
io mi sono arreso
EmailGrafica
classe che contiene tutti i componenti grafici bottoni liste label ecc
contiene anche il codice del mio bottone scarica per scaricare le email che chiama il metodo scarica della classe EmailReader
codice:
final JButton btnDecodifica = new JButton();
btnDecodifica.setBounds(10, 319, 147, 99);
btnDecodifica.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println(Thread.currentThread());
new Thread() { public void run() {
er= new EmailReader();
try {
boolean connesso=reteConnessa();
if(connesso!= true){
JOptionPane.showMessageDialog(null, "Attenzione verificare connessione internet");
}else{
Visibile();
er.Scarica();
allreferti=er.riempiVectorReferti();
listEmailRicevute.setListData(allreferti);
}
il tread si occupa della barra di download una semplice progress bar indeterminate
poi sempre in questa classe EmailGrafica ho la mia label
codice:
....
label_Info = new JLabel();
label_Info.setText("New JLabel");
label_Info.setBounds(10, 25, 592, 14);
panelEmailRicevute.add(label_Info);
adesso nella seconda classe EmailReader risiede il metodo scarica vero e proprio
codice:
protected EmailGrafica eg ;
public void Scarica() {
try {
eg=new EmailGrafica();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
pop3=eg.getConfPop();
user=eg.getConfUser();
pass=eg.getConfPass();
Store store = session.getStore("pop3");
store.connect(pop3, user, pass);
Folder folder = store.getDefaultFolder();
if (folder != null) {
folder = folder.getFolder("INBOX");
if (folder != null) {
folder.open(Folder.READ_ONLY);
Message[] elencoMessaggi = folder.getMessages();
for (int indice = 0; indice < elencoMessaggi.length; indice++) {
Message messaggio = elencoMessaggi[ indice ];
InternetAddress fromAddress = (InternetAddress)messaggio.getFrom()[0];
String from = fromAddress.getPersonal();
if( from == null ) {
from = fromAddress.toString();
if(from.compareTo(eg.getConfDown())==0){
System.out.println("----------------------------------------------");
System.out.println(
"DA:" + from +
" OGGETTO: " + messaggio.getSubject() +
" DATA: " + messaggio.getSentDate() +
"\n"
);
stampaMessaggio( messaggio );
//stampaParte(messaggio, indice);
}
eg.label_Info.setText("from vale-------------------------"+from);
}
}
folder.close(false);
} else {
System.out.println( "Folder non trovato" );
}
} else {
System.out.println( "Folder di default non trovato" );
}
store.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
static void stampaMessaggio( Message msg ) throws MessagingException, IOException {
Part msgPart = msg;
Object contenuto = msgPart.getContent();
if( contenuto instanceof Multipart ) {
Multipart mp = (Multipart)contenuto;
for( int i=0; i<mp.getCount(); i++ ) {
stampaParte( mp.getBodyPart(i), i );
msg.setFlag(Flags.Flag.DELETED, true);
}
}
}
static void stampaParte( Part parte, int count ) throws MessagingException, IOException {
String contentType = parte.getContentType();
System.out.println( "Disposizione: " + parte.getDisposition() );
System.out.println( "Testo: " );
if( contentType.startsWith("text/plain") ) {
InputStream in = parte.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader( in )
);
do {
String linea = reader.readLine();
if( linea == null ) {
break;
}
System.out.println( linea );
} while( true );
reader.close();
in.close();
} else {
String filename = parte.getFileName();
//if( filename == null ) {
//filename = "allegato" + count + ".cod";
//}
FileOutputStream writer = new FileOutputStream("Email_Ricevute/"+filename );
byte[] buffer = new byte[ 4096 ];
InputStream in = parte.getInputStream();
while( true ) {
int readed = in.read( buffer );
if( readed == -1 ) {
break;
}
writer.write( buffer, 0, readed );
}
writer.close();
in.close();
System.out.println("Salvato il file " + filename );
}
}
come vedi in questa classe ci sono molti System.out.println.....
che stampano a video delle informazioni su ogni email che trovano nella casella di posta
io vorre che questi informazioni vengano stampate continuamente nella label_Info in EmailGrafica
cioè dovrei passare quel testo contenuto in system.out...
e impostarlo alla label e aggiornare la label continuamente
per farti capire il risultato che vorrei ottenere è simile a quella label che trovi quando istalli un qualsiasi programma che ti dice i file che sta istallando in modo velocissimo ele directori mentre scorre la progress bar d'istallazione...
spero di essere stato chiaro.. grazie in anticipo per l'aiuto