Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-11-2008, 11:40   #1
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
[Java] creare lista JComboBox piu velocemente

Dunque, il problema è banale ma non riesco a risolverlo

Praticamente mi occorre creare un JComboBox che permetta di scegliere un valore da 1 a 9999, e questo oggetto va a finire in una maschera che viene replicata per 12 volte.

Codice:
  String[] combolist = new String[10000];
   	for (int i=1; i<10000; i++)
    	combolist[i] = ""+i;
    final JComboBox combo = new JComboBox(combolist);
Ora il problema è che ci mette una eternità a caricare il programma visto che deve rifare la medesima cosa per 12 volte, esiste un modo piu veloce per fare il tutto? Spulciando tra i metodi non ho trovato nulla che potesse fare al caso mio

Grazie
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:30   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Ma ripeti 12 volte il codice che hai scritto per caso?
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:49   #3
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
Ti spiego, praticamente è una interfaccia grafica che deve gestire 12 oggetti separati. Quindi quel codice che ho postato sopra è nel costruttore di questa classe e quando creo l'interfaccia, vengono aggiunti 12 oggetti in un tabbedpane che racchiude tutto

ma ci mette veramente troppo, se tolgo quel ciclo impiega qualcosa come 15 secondi in meno ad avviarsi (su 25 totali).. lo so che il tempo è relativo, però è buon indice che qualcosa non quadra
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 16:11   #4
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
15 secondi per eseguire quel ciclo???
Sicuro che non siano millisecondi??

Cmq posta anche il resto del codice così vediamo dove stà l'intoppo che ti rallenta così tanto anche perchè 25 secondi per far partire un'applicazione mi sembrano un attimo tanti
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 11:45   #5
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
Codice:
public class Program {
public program(){

...

final JComboBox nominalflow_combo = new JComboBox(LIST);

...

}
   private static final String LIST[];
   static{
      LIST = new String[9999];
      for (int i=0; i<9999; i++)
    	    LIST[i] = ""+(i+1);
   }
}
Genero quindi un combobox utilizzando un array statico.

il programma principale, crea 12 istanze dell'oggetto program che va a sbattere nella interfaccia dentro un tabbedpane.

Codice:
public class main {

Program[] unit = new Program[PROGRAM_MAX]; 
	for (int i=0; i<PROGRAM_MAX; i++){
	  unit[i] = new Program();
}

JTabbedPane tabbedPane = new JTabbedPane(); 
 	for (int i=0; i<PROGRAM_MAX; i++)
		tabbedPane.addTab("Program "+(i+1), null, unit[i].getPanel(),"Program nr: "+(i+1));	

...

ora, se io al posto di new JComboBox(LIST) credo un combobox vuoto JComboBox() la differenza per caricare il programma è di ben 17 secondi (!!!) possibile che per popolare 12 box mi ci metta così tanto? Probabilmente mi sfugge qualcosa..
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 12:49   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ehm, ma così, per curiosità, PROGRAM_MAX quanto vale?

Un'altra cosa.
Potresti per favore spiegare a cosa serve una ComboBox che permette all'utente di scegliere un valore compreso tra 1 e 9999?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 05-12-2008 alle 12:51.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 14:30   #7
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
PROGRAM_MAX vale 12

e per la combo mi serve così perchè è più immediato selezionare in questo modo il valore, cmq non mi pare normale che ci metta cosi tanto per popolare delle liste, sbaglio?
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 15:55   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
PROGRAM_MAX vale 12
Quindi questo ciclo istanzia 12 oggetti di tipo Program:
Codice:
public class main {

Program[] unit = new Program[PROGRAM_MAX]; 
	for (int i=0; i<PROGRAM_MAX; i++){
	  unit[i] = new Program();
}

JTabbedPane tabbedPane = new JTabbedPane(); 
 	for (int i=0; i<PROGRAM_MAX; i++)
		tabbedPane.addTab("Program "+(i+1), null, unit[i].getPanel(),"Program nr: "+(i+1));	

...
Notiamo che un oggetto Program istanzia al suo interno quasi 10.000 stringhe uniche (tutti i numeri da 0 a 9999, cioè tutte le stringhe che li rappresentano a partire dalla stringa "0" fino alla stringa "9999").
Questo di per se non sarebbe il collo di bottiglia [intendo il fatto di istanziare 10.000 stringhe].

Tu stesso hai notato in precedenza:
Quote:
...ora, se io al posto di new JComboBox(LIST) credo un combobox vuoto JComboBox() la differenza per caricare il programma è di ben 17 secondi (!!!)...
Il problema infatti è questo.
Passare come argomento al costruttore di JComboBox un array (in questo specifico caso di String) significa il processo di costruzione del Combo Box Model associato a quel JComboBox sarà un tantino pesantuccio se l'array contiene un numero notevole di items.

Prova un po' a ficcare solo 100 String nell'array LIST invece delle 10.000 attuali e dovresti notare una certa differenza di tempistica (e questo a prescindere dal fatto che così facendo istanzierai solo 100 String invece che 10.000: l'istanziazione delle 10.000 String di per se non deve essere un problema, il problema è appunto creare un Combo Model così esageratamente grande, quando mai ti è capitato di vedere ComboBox con 10.000 items??? A me MAI fin'ora)...

Sospetto che il problema sia concettuale, cioè che tu stia usando lo strumento sbagliato per raggiungere il risultato che ti serve ottenere, il che ci porta alla seconda domanda che ti ho fatto:
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
e per la combo mi serve così perchè è più immediato selezionare in questo modo il valore, cmq non mi pare normale che ci metta cosi tanto per popolare delle liste, sbaglio?
A parte il fatto che selezionare un valore da una lista di 10.000 items non mi sembra poi così "immediato" (metti che voglio l'item numero 4.789, la lista a cascata che compare sotto il ComboBox parte dal valore 1 e me ne mostra solo un tot. quanto mi tocca "scrollare" di rotellina o cliccare sulla freccetta "giù" prima di arrivare al valore che mi serve? Non faccio molto, molto prima a scrivere direttamente io il valore?) per ottenere questo scopo stai:
1- istanziando 10.000 String;
2- creando un(in realtà 12) Combo Model enorme di 10.000 items;

Non è che forse te la puoi cavare con qualche altro controllo?
Per esempio uno Spinner?

Nota: sto scrivendo di fretta.
A scanso di equivoci: chiedo scusa se i toni possono sembrare provocatori, non ho alcuna intenzione di offenderti o fare del sarcasmo, le osservazioni che ho postato le ho postate con l'intento di far cadere la tua attenzione su determinate problematiche nella speranza di stimolare da parte tua delle riflesisoni utili.
Magari avevi già pensato a tutto questo e io non ho capito bene la situazione: capita, sono nubbio

Ciao.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 05-12-2008 alle 15:58.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 16:13   #9
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
mmm hai perfettamente ragione, non pensavo fosse così oneroso il dover creare quei combobox comunque, ora mi studio un po' JSpinner e vedo se può fare al caso mio e come modificare il resto del codice eventualmente, ti ringrazio per la dritta

Considerando che il programma in tutto impiega qualcosa come 48 secondi a caricare mi sa che dovrò fare un bel po' di alleggerimenti Sicuramente sbaglio qualcosa a livello di gestione degli eventi, ma eventualmente aprirò un altro thread, cmq provo così e vediamo se posso limare quei 17 secondi
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 16:31   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
...
Considerando che il programma in tutto impiega qualcosa come 48 secondi a caricare mi sa che dovrò fare un bel po' di alleggerimenti Sicuramente sbaglio qualcosa a livello di gestione degli eventi, ma eventualmente aprirò un altro thread...
Probabilmente c'è qualche altro problema.
Prova a controllare:
- i cicli;
- il codice che hai inserito nei metodi di gestione degli eventi dei vari Listener;

Se hai qualche sospetto su qualche pezzo di codice, specie per i Listener, non aprire un altro thread (nn c'è n'è veramente bisogno) ma posta qui sotto, io quando e per quello che posso ti do una mano volentieri.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
iPhone Air 2 in arrivo già nel 20...
Vimeo quasi svuotata: Bending Spoons ann...
Altro che bolla: per Huang l'AI è...
Battlefield 6: la Stagione 2 segner&agra...
Da Sony due nuovi giradischi wireless pe...
Arriva l'addio definitivo di Intel ad Al...
Attacco AI su Google Calendar: Gemini pu...
Renault vuole reintegrare Ampere nel gru...
1Password introduce un nuovo avviso anti...
Windows 11, nuovo bug blocca le app: col...
Tre sistemi operativi in uno smartphone:...
Crypto in Italia: 2,8 milioni di possess...
Pubblicato 'il carattere' di Claude: uti...
Siri cambia volto su iOS 27 e macOS 27: ...
Apple contro Intel e AMD: i numeri che r...
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: 03:09.


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