Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-04-2006, 10: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, 11:11   #2
vegeta83ssj
Senior Member
 
L'Avatar di vegeta83ssj
 
Iscritto dal: Feb 2002
Città: Modena
Messaggi: 592
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, 08: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, 07: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, 08: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, 09: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, 18: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, 06: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


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Due scope elettriche super accessoriate ...
Intel perde un altro pezzo da novanta: a...
Scende al prezzo impossibile di 149€ il ...
SK hynix svela la mostruosa HBM4, la mem...
ECOVACS non si ferma più e conqui...
Da non credere: crolla a 899€ MacBook Ai...
ASUS ROG porta in Italia una nuova tasti...
Samsung Galaxy S26 Ultra: brutte notizie...
Cos'è RSL, il nuovo standard che ...
Nissan Micra EV: da 29.500 a oltre 36.00...
Processo Microsoft-ValueLicensing: cosa ...
L'edizione limitata più ambita da...
Lo sviluppatore di MSI Afterburner svela...
Quando l'AI diventa maestro: così...
Sony WH-1000XM6 già scontate su A...
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: 07:54.


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