Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-04-2006, 11:51   #1
Slashjr
Member
 
L'Avatar di Slashjr
 
Iscritto dal: Apr 2005
Città: Viterbo
Messaggi: 282
JAVA... JProgressBar Problema

Ho un problema con l'aggiornamento del componente JProgressBar, ecco il codice:

...
int con = 0;
int cont = 1;
progressBar.setValue(con);
while(con <= 10){
cont = 0;
while(cont <= 500000000){
cont++;
}
progressBar.setValue(con);
con++;
System.out.println("Numero: "+con);
System.out.println("Bar: "+progressBar.getValue());
}
System.out.println("Fine");
...

Non funziona come dovrebbe l'aggiornamento della barra JProgressBar, ora vi spiego meglio:
La barra è stata suddivisa in 10 parti ed in base al parametro che gli viene passato con la varibile "con" si dovrebbe colorare, ma non è così:

con = 0 La barra non è colorata, quindi OK
con = 1 La barra dovrebbe avere la prima parte colorata ma niente
con = 2 La barra dovrebbe avere la prima parte ancora più colorata ma niente
con = ...
Con = 10 La Barra è tutta colorata quindi OK

Ho messo:
System.out.println("Numero: "+con);
System.out.println("Bar: "+progressBar.getValue());
Per vedere il valore di "Bar: "+progressBar.getValue() ed è Ok, ma la barra durante l'esecuzione sembra bloccata, si aggiorna solo alla fine.

Come posso far aggiornare la barra in maniera corretta, cioè ad ogni aggiornamento del parametro "con"?

GRAZIE AMICI
__________________
GUNS N'ROSES and VELVET REVOLVER FORUM!! CONFIGURATION: MOBO: Asus a8n-sli deluxe(Bios 1016); PROCESSOR: AMD Opteron 180 Toledo X2 VIDEO CARD (SLI): Asus extreme EN6600GT 128MB + Albatron Trinity 6600GT 128MB; RAM: 2*512 King(da cambiare); POWER SUPPLY: 550watt; CASE: Aerocool Aeroangine Gamer Case (+4ventole+5neonBlu ) HDD: Seagate 160Gb Jr. MOUSE: Razor DiamonBack JOYPAD: Trust Predator CONSOLE: PSP Slim CELL: Nokia N96 NOTEBOOK: Acer TravelMate 5520G
Slashjr è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2006, 12:11   #2
vegeta83ssj
Senior Member
 
L'Avatar di vegeta83ssj
 
Iscritto dal: Feb 2002
Città: Modena
Messaggi: 594
Premetto che non ho mai utilizzato questo componente ma puoi dire come l'hai inizializzato ?
Perchè leggendo la documentazione dovrsti impostare il valore min e max della barra all'atto della creazione!
Cmq qui: http://java.sun.com/docs/books/tutor.../progress.html
c'è il tutorial della Sun sulle progress bar!

Ciauz
vegeta83ssj è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 09:14   #3
Slashjr
Member
 
L'Avatar di Slashjr
 
Iscritto dal: Apr 2005
Città: Viterbo
Messaggi: 282
Quote:
Originariamente inviato da vegeta83ssj
Premetto che non ho mai utilizzato questo componente ma puoi dire come l'hai inizializzato ?
Perchè leggendo la documentazione dovrsti impostare il valore min e max della barra all'atto della creazione!
Cmq qui: http://java.sun.com/docs/books/tutor.../progress.html
c'è il tutorial della Sun sulle progress bar!

Ciauz
Intanto grazie per avermi risposto!!!

Alllora il componente è correttamente visualizzato nella gui, il problema è il suo aggiornamento. Cmq:

Prima è stato dichiarato nella classe che estende il JFrame così:

private JPanel benchPanel;
private JLabel vediamoLabel;
private JProgressBar progressBar;
private JButton startButton;
private JButton exitBenchButton;

Poi è stato costruito:

benchPanel = new JPanel();
vediamoLabel = new JLabel("Avvia");
progressBar = new JProgressBar(0,10);
startButton = new JButton("START", new ImageIcon(cl.getResource("images/gen.gif")));;
exitBenchButton = new JButton("EXIT", new ImageIcon(cl.getResource("images/chiudi.gif")));
benchPanel.add(vediamoLabel);
benchPanel.add(progressBar);
benchPanel.add(startButton);
benchPanel.add(exitBenchButton);
benchPanel.setVisible(false);
....
contpane.add(benchPanel);

E poi il codice che avevo postato all'inizio è messo nel Listener

private class startButtonListener implements ActionListener {
public void actionPerformed (ActionEvent er) {

Tutti gli altri componenti swing funzioname benissimo... è solo questa cavolo di Barra che non funziona come dovrebbe!!!
__________________
GUNS N'ROSES and VELVET REVOLVER FORUM!! CONFIGURATION: MOBO: Asus a8n-sli deluxe(Bios 1016); PROCESSOR: AMD Opteron 180 Toledo X2 VIDEO CARD (SLI): Asus extreme EN6600GT 128MB + Albatron Trinity 6600GT 128MB; RAM: 2*512 King(da cambiare); POWER SUPPLY: 550watt; CASE: Aerocool Aeroangine Gamer Case (+4ventole+5neonBlu ) HDD: Seagate 160Gb Jr. MOUSE: Razor DiamonBack JOYPAD: Trust Predator CONSOLE: PSP Slim CELL: Nokia N96 NOTEBOOK: Acer TravelMate 5520G
Slashjr è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2006, 08:07   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao,
il problema sembrerebbe che, se metti quel ciclo for all'interno della actionPerformed, non dai tempo alla JVM di rinfrescare lo stato della tua progress bar. Quando fai un setValue(), la barra NON viene rinfrescata (cioe' ridisegnata), ma viene messo in coda un comando di rinfresco, il quale verra' eseguito quando il controllo passa ancora alla Virtual Machine.
Nel tuo caso, il controllo ci passa quando hai finito il ciclo, per cui vedi la barra passare da vuota a completamente piena.

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2006, 09:21   #5
Slashjr
Member
 
L'Avatar di Slashjr
 
Iscritto dal: Apr 2005
Città: Viterbo
Messaggi: 282
Quote:
Originariamente inviato da sottovento
Ciao,
il problema sembrerebbe che, se metti quel ciclo for all'interno della actionPerformed, non dai tempo alla JVM di rinfrescare lo stato della tua progress bar. Quando fai un setValue(), la barra NON viene rinfrescata (cioe' ridisegnata), ma viene messo in coda un comando di rinfresco, il quale verra' eseguito quando il controllo passa ancora alla Virtual Machine.
Nel tuo caso, il controllo ci passa quando hai finito il ciclo, per cui vedi la barra passare da vuota a completamente piena.

High Flying
Sottovento
Analisi PERFETTA!!!
... ma c'è una soluzione a questo?
__________________
GUNS N'ROSES and VELVET REVOLVER FORUM!! CONFIGURATION: MOBO: Asus a8n-sli deluxe(Bios 1016); PROCESSOR: AMD Opteron 180 Toledo X2 VIDEO CARD (SLI): Asus extreme EN6600GT 128MB + Albatron Trinity 6600GT 128MB; RAM: 2*512 King(da cambiare); POWER SUPPLY: 550watt; CASE: Aerocool Aeroangine Gamer Case (+4ventole+5neonBlu ) HDD: Seagate 160Gb Jr. MOUSE: Razor DiamonBack JOYPAD: Trust Predator CONSOLE: PSP Slim CELL: Nokia N96 NOTEBOOK: Acer TravelMate 5520G
Slashjr è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2006, 10:03   #6
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Slashjr
Analisi PERFETTA!!!
... ma c'è una soluzione a questo?
Beh si,
immagino che il tuo programma fosse di prova (hai un ciclo che continua ad incrementarsi all'interno di una actionPerformed...).

Cmq non devi fare quelle operazioni in quella sede! Nella actionPerformed devi semplicemente ATTIVARE qualcun altro. Per esempio, potresti lanciare un thread che fa le operazioni che ti interessano, oppure fare una notify() ad un thread gia' in esecuzione.
Non e' una cosa difficile, e le modifiche richieste, se ci pensi, non sono eccessive.
Ogni volta che sei un una actionPerformed (non solo quella), la GUI non e' responsiva...


High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2006, 19:56   #7
Slashjr
Member
 
L'Avatar di Slashjr
 
Iscritto dal: Apr 2005
Città: Viterbo
Messaggi: 282
Quote:
Originariamente inviato da sottovento
Beh si,
immagino che il tuo programma fosse di prova (hai un ciclo che continua ad incrementarsi all'interno di una actionPerformed...).

Cmq non devi fare quelle operazioni in quella sede! Nella actionPerformed devi semplicemente ATTIVARE qualcun altro. Per esempio, potresti lanciare un thread che fa le operazioni che ti interessano, oppure fare una notify() ad un thread gia' in esecuzione.
Non e' una cosa difficile, e le modifiche richieste, se ci pensi, non sono eccessive.
Ogni volta che sei un una actionPerformed (non solo quella), la GUI non e' responsiva...


High Flying
Sottovento

Giusto... proverò mettendo le cose in thread differenti, poi se la cosa non funziona potrei anche usare un sleep() sui thread così darei alla GUI il tempo per aggiornarsi.
__________________
GUNS N'ROSES and VELVET REVOLVER FORUM!! CONFIGURATION: MOBO: Asus a8n-sli deluxe(Bios 1016); PROCESSOR: AMD Opteron 180 Toledo X2 VIDEO CARD (SLI): Asus extreme EN6600GT 128MB + Albatron Trinity 6600GT 128MB; RAM: 2*512 King(da cambiare); POWER SUPPLY: 550watt; CASE: Aerocool Aeroangine Gamer Case (+4ventole+5neonBlu ) HDD: Seagate 160Gb Jr. MOUSE: Razor DiamonBack JOYPAD: Trust Predator CONSOLE: PSP Slim CELL: Nokia N96 NOTEBOOK: Acer TravelMate 5520G
Slashjr è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2006, 07:26   #8
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Slashjr
Giusto... proverò mettendo le cose in thread differenti, poi se la cosa non funziona potrei anche usare un sleep() sui thread così darei alla GUI il tempo per aggiornarsi.
Non preoccuparti, se fai le operazioni in thread differenti e' tutto ok.
La sleep, invece, potrebbe non risolverti le cose (resti comunque fermo nella actionPerformed(), per cui la GUI non puo' rinfrescare).

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
I satelliti spia russi Kosmos 2613 e Kos...
GTA VI: online la nuova mega galleria co...
Edits, l'app di Instagram, sbarca gratis...
Claude Code: il bug che ha spedito l'ema...
Perplexity lancia Teammates, gli agenti ...
Niente più datacenter? Gli eletto...
La Cina avrebbe approvato lo sviluppo de...
Epson EF-72 alla prova: Google TV, audio...
AST SpaceMobile annuncia il razzo spazia...
Apple taglia il budget AI dei dipendenti...
Fisco e intelligenza artificiale, come c...
Synology BC510 e CC410W, la videosorvegl...
600.000 chip NVIDIA fermi a Hong Kong: l...
La Cina punta tutto sull'allunaggio con ...
LG Italia compie 30 anni: gli italiani v...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v