Riadattare una finestra alla risoluzione dello schermo

di il
4 risposte

Riadattare una finestra alla risoluzione dello schermo

Ciao
Mi sto chiedendo, se c'è qualche libreria capace di riadattare
le dimensioni di una finestra JFrame, alla risoluzione delle schermo.
Chessò il programma viene creato con una risoluzione 1980 *1080
poi un utente lo avvia sulla sua macchina, e la sua risolzuione è tipo 1024*768
Questa funzione dovrebbe quindi riadattare le dimensioni della finestra, in base alla risoluzione dell'utente.

4 Risposte

  • Re: Riadattare una finestra alla risoluzione dello schermo

    Alexxandro ha scritto:


    Mi sto chiedendo, se c'è qualche libreria capace di riadattare
    le dimensioni di una finestra JFrame, alla risoluzione delle schermo.
    Chessò il programma viene creato con una risoluzione 1980 *1080
    poi un utente lo avvia sulla sua macchina, e la sua risolzuione è tipo 1024*768
    Questa funzione dovrebbe quindi riadattare le dimensioni della finestra, in base alla risoluzione dell'utente.
    Puoi massimizzare la finestra, oppure mantenendola non massimizzata puoi comunque impostare al frame le dimensioni dello schermo ottenibili dal getScreenSize() di java.awt.Toolkit. Se vuoi considerare anche un contesto multi-monitor, c'è dell'altro ma è comunque tutto già nel framework standard (non serve "altro").

    P.S. tieni presente che generalmente sui desktop ci sono barre del sistema (taskbar ecc...), devi valutare se il frame deve coprirle o solo usare lo spazio disponibile. Massimizzare una finestra NON copre le barre.

    Se poi intendi dire che il contenuto del frame si adatti (allarghi ecc..) alla dimensione del frame, questo è un altro discorso, più di "layout" dei componenti.
  • Re: Riadattare una finestra alla risoluzione dello schermo

    Forse la cosa più semplice al momento è lo schermo intero.
    Ma non mi piace l'idea perchè ci sarebbe un sacco di spazio vuoto.
    Io ho pensato di creare qualcosa che in percentuale riadatta le dimensioni della finestra, e quindi anche dei contenuti.
    Una funzione che che lancia la screensize e poi, basandosi sui famosi 1980*1080, faccia un calcolo per determinare di quanti pixel dev'èssere la finestra.A dirlo è semplice, a farlo anche, ma dovrei fare un sacco di prove...
    Ci voleva qualcosa di questo tipo, già bella e pronta.
  • Re: Riadattare una finestra alla risoluzione dello schermo

    Alexxandro ha scritto:


    Ma non mi piace l'idea perchè ci sarebbe un sacco di spazio vuoto.
    Se allargando la finestra, c'è molto spazio vuoto, allora molto probabilmente vuol dire che la disposizione dei componenti non è delle migliori e presumibilmente non sono stati usati i layout manager in maniera opportuna (es. si è usato il posizionamento "assoluto").

    Alexxandro ha scritto:


    Io ho pensato di creare qualcosa che in percentuale riadatta le dimensioni della finestra, e quindi anche dei contenuti.
    Una funzione che che lancia la screensize e poi, basandosi sui famosi 1980*1080, faccia un calcolo per determinare di quanti pixel dev'èssere la finestra.A dirlo è semplice, a farlo anche, ma dovrei fare un sacco di prove...
    Ci voleva qualcosa di questo tipo, già bella e pronta.
    No, non c'è una cosa già fatta per questo ... è un po' particolare ma è comunque banale, basta della matematica basilare per imporre al frame una dimensione che è solo una "percentuale" dello schermo intero.

    E comunque in generale, una soluzione tipica è quella di costruire la GUI sfruttando i layout manager in modo che all'inizio la finestra sia alla dimensione giusta per far stare i componenti alla loro dimensione "preferita" e magari semplicemente poi centrarla sullo schermo. Se poi è ridimensionabile e l'utente la allarga, il risultato dipende chiaramente dall'uso buono o no dei layout manager.
  • Re: Riadattare una finestra alla risoluzione dello schermo

    Beh a dir la verità non ho fatto nessun tipo di prova, è tutto teorico quello che ho pensato.
    E non ho mai utilizzato button ecc, nella finestra..
    Sono novizio in queste cose, ma ho capito all'incirca quale strada seguire.
    mi hai ricordato che però che ovviamente per avere un layout uguale per qualsiasi risoluzione, dovrò ussare per l'appunto i layoutManager, che non ho mai utilizzato.
    Ma java ed eclipse sono una bomba insieme e sperò di non avere grosse difficolta
Devi accedere o registrarti per scrivere nel forum
4 risposte