Buon pomeriggio ragazzi,
da qualche giorno sto diventando scemo dietro a quello che ritengo un problema inspiegabile!
ho una applicazione che mostra a video delle label con del testo e alcune immagini.
Scendo nel dettaglio:
La mia finestra è un JFrame, nel quale colloco un JPanel nel quale sono contenute le varie label e le varie immagini.
il contenuto del pannello è variabile, e si aggiorna ogni tot secondi, mostrando informazioni diverse ogni volta.
fin qui tutto ok, mi mostra il mio bel pannello con sfondo, label di testo e immagini. ogni tanto, dopo il refresh (chiamato con repaint()), in modo casuale mi mischia tutte le informazioni, moltiplicando il background e alcune label. io credo che l'errore sia nel chiamare repaint. altrimenti è non sò proprio. le funzioni che disegnano gli oggetti sono corrette, quindi non resta che il repaint. vi posto qui sotto come lo ho usato, forse ho sbagliato qualcosa:
Codice PHP:
//tMonitor è un thread
tMonitor.join();
            
//initMonitor(bFineProg);
            //disegno il desktop
            
MonitorObj.disegnaDesktop(jPannello"./Sfondi/"+myRetMon.arrayMon[0][9], Integer.parseInt(myRetMon.arrayMon[0][0]), Integer.parseInt(myRetMon.arrayMon[0][1]), Integer.parseInt(myRetMon.arrayMon[0][3]), Integer.parseInt(myRetMon.arrayMon[0][2]));
            if (
bFlag==0){
                
//MonitorObj.creaFinestra(framePrincipale, jPannello, PosX, PosY, larghezza, altezza);
                //creo la finestra
                
MonitorObj.creaFinestra(framePrincipalejPannelloInteger.parseInt(myRetMon.arrayMon[0][0]), Integer.parseInt(myRetMon.arrayMon[0][1]), Integer.parseInt(myRetMon.arrayMon[0][3]), Integer.parseInt(myRetMon.arrayMon[0][2]));
                
framePrincipale.add(jPannello);
                
framePrincipale.doLayout();
                
//rendo visibile il frame principale
                
framePrincipale.setVisible(true);
                
bFlag=1;
            }
//altrimenti
            
else{
                
/*
                //aggiungo il pannello al frame principale
                jPannello.revalidate();
                framePrincipale.add(jPannello);                
                //chiamo repaint su framePrincipale
                framePrincipale.repaint();
                framePrincipale.setVisible(true);                
                */               
                //aggiungo il pannello al frame principale
                
jPannello.validate();
                
framePrincipale.add(jPannello);
                
framePrincipale.validate();
                
//chiamo repaint su framePrincipale
                
framePrincipale.repaint();
            }