Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema resize

  1. #1

    problema resize

    Salve a tutti ......
    ho creato una app in java con dei componenti, e faccio il resize del form in funzione delle dimensione dello schermo dell ' utente.
    Ho piazzato i componenti senza un layout .... c'è un modo per fare il resize dei componenti in funzione delle dimensioni dello schermo dell'utente?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema resize

    Originariamente inviato da kerbero1984
    Ho piazzato i componenti senza un layout .... c'è un modo per fare il resize dei componenti in funzione delle dimensioni dello schermo dell'utente?
    Se scrivi un certo po' di codice che intercetta l'evento di resize della finestra e ti fai tutti i calcoli relativi a posizioni/dimensioni (es. se la finestra è diventata larga W, allora un textfield ha dimensione W-textfield.getX()-paddingDestro) .... lo si potrebbe fare. Ma sarebbe potenzialmente lungo, fumoso e critico.

    Proprio per questo esistono ..... i layout manager!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie della risposta ..... la strada che presenti come altrnative ai layout è quella che ho percorso io, ma nonostante faccio un set size sui singoli componenti, mi accorgo che il componente rimane tale e quale. Come mai?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da kerbero1984
    ma nonostante faccio un set size sui singoli componenti, mi accorgo che il componente rimane tale e quale. Come mai?
    Posta il codice, che sia chiaro circa cosa intercetti come evento e cosa fai di conseguenza.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    codice:
    public class main_order extends javax.swing.JFrame {
    
        String[] nomi = new String[9];
        String[] immagini = new String[9];
        int scelta =0;
        String colore_pass;
        String path_img="";
        String tipo_quadro="";
        int screen_w=0;
        int screen_h=0;
        int riduzione_w =0;
    
        /** Creates new form main_order */
        public main_order() {
            initComponents();
             Dimension d = getToolkit().getScreenSize();
             setSize(d.width, d.height);
             
            screen_w=d.width;
            screen_h=d.height;
            if(screen_w<1366){
            riduzione_w=100-((int)((screen_w*100)/1366));
              riduci();
            
            }
            
            
        }
    
    //un piccolo estratto di riduci() 
     bt_anteprima.setSize(bt_anteprima.getHeight(), (int)(bt_anteprima.getWidth()*riduzione_w/100));
    ma i componenti rimangono uguali ... perchè?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da kerbero1984
    codice:
    public class main_order extends javax.swing.JFrame {
    
        String[] nomi = new String[9];
        String[] immagini = new String[9];
        int scelta =0;
        String colore_pass;
        String path_img="";
        String tipo_quadro="";
        int screen_w=0;
        int screen_h=0;
        int riduzione_w =0;
    
        /** Creates new form main_order */
        public main_order() {
            initComponents();
             Dimension d = getToolkit().getScreenSize();
             setSize(d.width, d.height);
             
            screen_w=d.width;
            screen_h=d.height;
            if(screen_w<1366){
            riduzione_w=100-((int)((screen_w*100)/1366));
              riduci();
            
            }
            
            
        }
    
    //un piccolo estratto di riduci() 
     bt_anteprima.setSize(bt_anteprima.getHeight(), (int)(bt_anteprima.getWidth()*riduzione_w/100));
    Ma così non mi dice nulla e non vuol dire nulla di particolare. Qui vedo solo impostazioni "statiche" fatte una volta sola quando il frame viene istanziato.

    Ci vuole una gestione del tipo "ogni volta che il frame viene ridimensionato esegui X". E questo non lo vedo nel tuo codice.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    ... grazie per la pazienza, ma in concreto come faccio a dire quando il frame viene ridimensionato restringi i componenti?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da kerbero1984
    ... grazie per la pazienza, ma in concreto come faccio a dire quando il frame viene ridimensionato restringi i componenti?
    Devi innanzitutto registrare sul frame un ComponentListener, che ha, tra gli altri, un (eloquente dal nome) void componentResized(ComponentEvent e)

    A seguito del resize ricalcoli quello che serve come posizioni e/o dimensioni dei componenti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.