Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] Problema inspiegabile!

    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();
                } 

  2. #2

    Risolto

    Ragazzi ho risolto, se a qualcuno può essere utile posto la soluzione (che è veramente una cretinata):
    Codice PHP:
    tMonitor.join();
                
    //initMonitor(bFineProg);
                
    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);
                    
    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{                
                    
    //valido il pannello modificato
                    
    jPannello.validate();
                    
    //ridisegno il pannello
                    
    jPannello.repaint();
                    
    //lo aggiungo al frame principale
                    
    framePrincipale.add(jPannello);
                    
    //valido il frame principale
                    
    framePrincipale.validate();
                    
    //ridisegno il framePrincipale
                    
    framePrincipale.repaint();
                } 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.