Passa ai contenuti principali

Swing: migliorare le prestazioni di refresh grafico

Le applicazioni Java possono sembrare meno fluide di quelle scritte in altri linguaggi. Ecco un trucco e una breve spiegazione del motivo ed un approccio diretto del problema.
Questo trucco è tratto dal Journal dello IEEE student branch di Padova (articolo di Dario Santamaria) che potete visitare a questo sito.La situazione che solitamente si presenta quando si hanno problemi di refreh grafico è che l'aggiornamento grafico viene fatto successivamente all'esecuzione di un metodo o parte di codice pesante. Questo succede perchè la grafica Swing non è Thread-Safe cioè lo stesso thread che si occupa dei metodi scritti da noi gestisce anche l'aggiornamento grafico. La soluzione è quindi

quella di separare in due thread la parte logica da quella grafica e forzare la priorità dei thread. Procederemo in questa maniera:

public
void actionPerformed(ActionEvent e){
//1.operazione pesante
//2.aggiornamento grafico
}

in dettaglio:
public void actionPerformed(ActionEvent e){
Runnable longTask = new Runnable(){
public void run(){
//1.operazione pesante
Runnable awtTask = new Runnable(){
public void run(){
//2.aggiornamento grafico
}
}
EventQueue.invokeLater(awtTask);
}
};
Thread t = new Thread(longTask);
t.setPriority(Thread.NORM_PRIORITY);
t.start();
}

Post popolari in questo blog

Se excel non aggiorna le formule

Oggi in ufficio è capitata una richiesta particolare. In un documento excel dopo aver eseguito un copia-incolla di una formula non si aggiornavano i risultati nelle celle interessate. Dopo attimi di perplessità dal fondo dell'ufficio il capo ci illumina con una funzione ai più sconosciuta e che ha risolto il problema: il tasto F9. Scusate la mia ignoranza in excel ma questo blog è pensato proprio per appuntare esperienze di vita informatica. Tutto sta nel fatto che i "calcolatori d'un tempo" non disponevano di una adeguata potenza di calcolo e nelle operazioni di copia-incolla si verificavano lunghe attese per l'aggiornamento. La soluzione adottata da MS è stata quella di inserire un'opzione per impedire l'aggiornamento automatico e forzarlo con una combinazione di tasti... il tasto F9!
Combinazioni utili per il calcolo delle formule F9 = calcola le formule modificate dall'ultimo calcolo in tutte le cartelle e fogli di lavoro aperte. MAIUSC + F9 = c…

Dove si trova il mio ISP?

Il link di oggi è My IP Address Lookup. Questo servizio spagnolo mostra dove si trova fisicamente il vostro ISP. Quando vi collegate ad internet in realtà prima fate una richiesta (il vostro modem o router) ad una macchina del vostro ISP e poi vi viene assegnato un indirizzo IP. Se volete sapere dove si trova la macchina che vi permette di accedere alla rete visitate pure
http://www.ip-adress.com/

Potrete inoltre conoscere il vostro IP e il provider che ve lo offre

RaspberryPi: Controllare il desktop da remoto con VNC

Premessa
A volte può essere utile avere l'accesso da remoto ad un desktop grafico sul nostro raspberrypi. Il metodo più diffuso è quello di installare un server VNC e collegarsi poi con un client da un altro computer. Per il raspberrypi possiamo scegliere tra due strade a seconda dell'utilizzo che se ne vuole fare:

Installare TightVNC Server: crea una sessione diversa per ogni connessione non cifrataInstallare x11vnc: permette di comandare il desktop dell'utente corrente sul raspberrypi
Tra i due metodi ho preferito il secondo visto che il mio raspi è collegato direttamente ad un televisore CRT. In questo modo posso navigare in internet su schermo grande direttamente dal tablet comodamente seduto sul divano. Unica nota negativa è che questo meccanismo non funziona per pilotare XBMC, per il quale è meglio utilizzare il client per android per esempio.

Installare TightVNC Server
1. Da linea di comando eseguire
sudo apt-get install tightvncserver
2. Avviare il server con il coman…