Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-07-2011, 11:22   #1
cifa
Member
 
Iscritto dal: Sep 2007
Messaggi: 59
[JAVA] Contenuto JFrame

Salve a tutti,
Premetto subito che sono piuttosto nuovo alle GUI, quindi probabilmente sto per dire bestialità, scusatemi in partenza
Ho concluso una GUI che attualmente funziona in questo modo (schematizzo dato che il codice è molto lungo):

Un main crea un frame (chiamiamolo frame1), attraverso un buttonlistener setta il frame1 non visibile e invoca un altro metodo statico che crea un frame2 ex novo lo riempe a dovere ed ha buttonlistner assolutamente analoghi a frame1. Tutto ciò avviene a catena per oltre una decina di finestre almeno.

Il mio dubbio è che il creare così tanti Frame sia poco corretto, avevo dunque pensato di passare ai vari metodi come argomento il frame originario da riempire al posto dei vari frame che vengono creati ex-novo dai metodi, in questo modo eviterei di creare frame ogni volta, ma non riesco a farlo. L'unica cosa che mi era venuta in mente è creare per ogni metodo un pannello a cui aggiungere i componenti come facevo con i nuovi frame per poi settarlo come contentpane del frame passato come riferimento. Ma facendo così non è ugualmente dispendioso? Altra domandina è, io ho diversi bottoni "Indietro", grazie al modo usato fino ad adesso, mi bastava passare come riferimento ad ogni metodo il frame creato dal metodo precedente e lavorare di .setVisible, se dovessi invece cambiare il tutto per "ri-riempire" uno stesso frame dovrei più volte svuotarlo e ri-riempirlo, non sarebbe molto peggio ?


Vi ringrazio e mi scuso per la domanda magari sciocca.
cifa è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2011, 16:11   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
prima la seconda: dal punto di vista dell'organizzazione il codice non cambia perchè quelli che prima erano frame diventerebbero pannelli. Passi il riferimento "globale" a questi così come lo passavi ai frame.

Circa l'uso dei frame in verità è una scelta di "filosofia", tra interfacce a desktop multipli (cioè più finestre) e quelle a desktop singolo. Quello che conta è l'usabilità. Ad esempio una MDI può essere grandiosa se hai due monitor e una ciofeca galattica se ne hai uno solo. Le SDI dipendono tanto dalla risoluzione dello schermo: se è bassa passi metà del tempo a trascinare barre di scorrimento.

Insomma, bisogna vedere.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2011, 16:50   #3
cifa
Member
 
Iscritto dal: Sep 2007
Messaggi: 59
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
prima la seconda: dal punto di vista dell'organizzazione il codice non cambia perchè quelli che prima erano frame diventerebbero pannelli. Passi il riferimento "globale" a questi così come lo passavi ai frame.

Circa l'uso dei frame in verità è una scelta di "filosofia", tra interfacce a desktop multipli (cioè più finestre) e quelle a desktop singolo. Quello che conta è l'usabilità. Ad esempio una MDI può essere grandiosa se hai due monitor e una ciofeca galattica se ne hai uno solo. Le SDI dipendono tanto dalla risoluzione dello schermo: se è bassa passi metà del tempo a trascinare barre di scorrimento.

Insomma, bisogna vedere.
Beh la mia GUI in realtà è dannatamente basica, quello che ho è un insieme di frame (quasi tutti della stessa dimensione) contenente solo textfield, bottoni e qualche combobox, non ho finestre che devono comparire insieme e sopra. A livello finito la sensazione che l'utilizzatore ha è quella di un unica finestra (di dimensioni piccolo, 600x300 dovrebbe essere) il quale contenuto cambia.
Ad esempio se l'utilizzatore seleziona un campo di una JList e preme OK, a lui compare nello stesso spazio utilizzato prima un insieme di TextField con campi da modificare, quello che accade a livello del mio codice è che il vecchio frame contenente JList ed altra roba viene settato non visibile, mentre viene chiamato un metodo che si occupa di creare una nuova finestra con i vari componenti e la setta visibile fino a contro-ordine.

Quindi però, se ho capito bene, a livello di efficienza non cambia nulla se dovessi ri-riempire lo stesso frame con diversi pannelli, giusto ?


Scusami è che oltre ad esser novizio con le GUI lo sono anche con la programmazione
cifa è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2011, 20:31   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
a livello di efficienza ne guadagni (con un frame solo) perchè la realizzazione di un JFrame è un procedimento oneroso. Relativamente parlando: all'atto pratico l'utente non si accorge di alcuna maggiore rapidità del programma.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2011, 09:47   #5
cifa
Member
 
Iscritto dal: Sep 2007
Messaggi: 59
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
a livello di efficienza ne guadagni (con un frame solo) perchè la realizzazione di un JFrame è un procedimento oneroso. Relativamente parlando: all'atto pratico l'utente non si accorge di alcuna maggiore rapidità del programma.
Beh dato che è un progetto universitario ed il codice penso verrà ispezionato, penso che mi converrà sostituire ogni nuovo frame con un nuovo panel che verrà settato come contentPane del frame passato come riferimento, giusto ?
L'unica cosa che mi puzzava è che usando questo metodo, ad ogni pulsante indietro devo ricreare un panel da capo, ma se mi dici che creare un JFrame è oneroso, intraprenderò questa strada.

Ti ringrazio
cifa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Amazon lancia gli Echo più potent...
Amazon rinnova la gamma Fire TV: ecco le...
Ring lancia le sue prime videocamere con...
Blink amplia la gamma di videocamere di ...
Jaguar Land Rover riprende (gradualmente...
HONOR inaugura il primo ALPHA Flagship S...
Yamaha: ecco il brevetto del 'finto moto...
'Console obsoleta e utenti ingannati': u...
Stop al ransomware su Google Drive, graz...
L'IA è la nuova interfaccia utent...
Battlefield 6: confermata la dimensione ...
Windows 11 porta il Wi-Fi 7 alle aziende...
Logitech MX Master 4 subito disponibile ...
'Nonna Skyrim' dice addio all'RPG di Bet...
PlayStation 5 Slim a 399€ o bundle con N...
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: 16:45.


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