Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    127

    [java] ridimensionare componenti GUI

    ciao, chi mi da una mano con swing ?

    come mai quando inserisco ad esempio un pulsante all'interno di un JPanel , il pulsante si estende fino a riempire la sezione ad esso assegnata ?

    ad esempio, se uso il contentPane e metto il pulsante a SOUTH questo mi diventa grande quanto tutta la sotto-area del jpanel.... come si settano le dimensioni ?

    grazie mille

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

    Re: [java] ridimensionare componenti GUI

    Originariamente inviato da tulkas85
    come mai quando inserisco ad esempio un pulsante all'interno di un JPanel , il pulsante si estende fino a riempire la sezione ad esso assegnata ?

    ad esempio, se uso il contentPane e metto il pulsante a SOUTH questo mi diventa grande quanto tutta la sotto-area del jpanel.... come si settano le dimensioni ?
    Si può certamente togliere da un contenitore il layout manager e quindi posizionare/dimensionare in modo assoluto i componenti.

    Ma è una pratica che può dare problemi e che, salvo casi particolari, è vivamente sconsigliata. La soluzione giusta è sfruttare al meglio i "layout manager". E questo vuol anche dire saper "impacchettare" componenti dentro contenitori, dentro altri contenitori ecc.....

    Vuoi un esempio? Immagina di voler fare una interfaccia in cui hai una sequenza verticale di "campi" ognuno con una JLabel di descrizione e a fianco un JTextField. Nella parte bassa della interfaccia hai una fila orizzontale di pulsanti tuoi.

    Il content pane di un JFrame ha per default un BorderLayout. Nella parte SOUTH puoi mettere un JPanel che ha ad esempio un BoxLayout orizzontale e in cui sono contenuti i tuoi pulsanti. Nella parte CENTER puoi mettere un altro JPanel che ha un BoxLayout stavolta verticale. Qui dentro ci metti tanti JPanel ognuno con un BoxLayout orizzontale che contiene JLabel+JTextField.

    Ti è chiaro? Per i layout manager vedi: A Visual Guide to Layout Managers
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    127
    grazie x la guida è molto utile, il mio problema mi sà che sia dovuto al gridlayout che non rispetta il massimo size dei componenti, almeno così mi pare di aver letto...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tulkas85
    il mio problema mi sà che sia dovuto al gridlayout che non rispetta il massimo size dei componenti, almeno così mi pare di aver letto...
    GridLayout non rispetta il "preferred" size dei componenti. La dimensione del componente è data dalla dimensione della cella e quest'ultima dimensione se la calcola lui dalla dimensione complessiva (del contenitore che ha il GridLayout) e dal numero di righe/colonne.

    Comunque ... con questo? Cambia layout manager o componi più layout manager, se non ti piace.
    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.