Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
L'euro digitale è una valuta fiat che entrerà in vigore nei prossimi anni. L'obiettivo principale è quello di ridurre la dipendenza dalle piattaforme di pagamento digitali statunitensi e offrire ai cittadini un modo semplice per trasferire denaro. Anche offline, anche in maniera (pseudo)anonima
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
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: 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, 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


Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Samsung: ufficiale la serie Galaxy Z Fol...
Galaxy Watch Ultra2 e Watch9 ufficiali: ...
Un razzo spaziale Falcon 9 ha lanciato l...
Microlino: dal rischio di fallimento all...
SpaceX, uno stadio di Falcon 9 si schian...
Gli agenti di OpenAI a 10 milioni di ute...
NOW aumenta il prezzo di Premium: rincar...
Le vendite di Steam Deck sono crollate d...
Le bollette rischiano di esplodere per c...
Addio a settimane di test in laboratorio...
NVIDIA Jetson, i nuovi prezzi sono assur...
Windows 11 26H1: tutte le novità in arri...
Apple Upgrade, in arrivo un programma di...
Firefox 153 rilasciato con modifica PDF ...
L'Italia è fra i mercati pi&ugrav...
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: 14:47.


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