Invece di utilizzare un gestore di layout che consenta di controllare le dimensioni e la posizione di tutti i componenti in un contenitore, è possibile impostare su null il gestore. Ogni componente potrà così controllare posizione e dimensioni proprie attraverso i propri vincoli.
Se si fa clic con il tasto destro del mouse su un contenitore e si imposta l'opzione Mostra griglia, è possibile trascinare, rilasciare e spostare componenti su un punto della griglia, in modo da poter posizionare i componenti senza utilizzare le azioni di allineamento:
E' inoltre possibile iniziare con il gestore di layout impostato su null e cambiarlo in un layout (come GridBagLayout) che consenta all'editor visuale per Java di calcolare l'impostazione del vincolo. Il vantaggio di consentire a ciascun componente di controllare le proprie dimensioni e la propria posizione sta nel fatto che è possibile specificare le dimensioni x e y, la larghezza e l'altezza ed essere certi che queste verranno sempre utilizzate durante il runtime. Lo svantaggio di avere dimensioni e altezza fisse è che queste non cambiano se l'applicazione è ridimensionata dall'utente o se le dimensioni delle etichette dei componenti, quali ad esempio pulsanti o caselle di controllo, variano in base al tipo di carattere o di lingua impostata dall'utente.
Per esaminare questa funzionalità nell'editor visuale per Java, è possibile utilizzare l'elenco di valori nella vista Proprietà della proprietà layout e selezionare null.
Quando si imposta su null il gestore di layout di un contenitore esistente, non cambia l'aspetto della vista Progettazione. L'editor visuale calcola i vincoli correnti di ciscun componente e li imposta automaticamente in modo esplicito. Ad esempio, si supponga di avere un contenitore che utilizza il gestore di layout FlowLayout e contiene un bean JLabel. Prima di impostare il layout su null, nel codice per inizializzare il bean JLabel è impostata solo la relativa proprietà di etichetta, come illustrato di seguito:
private javax.swing.JLabel getIvjJLabel(){ if(ivjJLabel == null) { ivjJLabel = new javax.swing.JLabel(); ivjJLabel.setText("JLabel"); } return ivjJLabel; }
Se si utilizza la vista Proprietà per modificare in null il gestore di layout, il formato del codice sarà il seguente:
private javax.swing.JLabel getIvjJLabel(){ if(ivjJLabel == null) { ivjJLabel = new javax.swing.JLabel(); ivjJLabel.setBounds(59, 10, 38, 15); ivjJLabel.setText("JLabel"); } return ivjJLabel; }
Nello stesso esempio, subito dopo aver impostato il gestore di layout su null, verranno visualizzati i valori dei vincoli, delle dimensioni e della posizione nella vista Proprietà di ciascun componente. Questi valori non vengono visualizzati quando il contenitore principale utilizza un qualsiasi altro gestore di layout, perché le proprietà del componente non variano quando il gestore di layout controlla la posizione e le dimensioni.
Quando si imposta su null il layout di un contenitore, nella vista Progettazione vengono visualizzati i quadratini di ridimensionamento di ciascun componente che consentono di definire nuove dimensioni. E' inoltre possibile ridimensionare un bean nel momento in cui lo si aggiunge dalla tavolozza. E' sufficiente tenere premuto il tasto sinistro del mouse quando si rilascia il bean nella vista Progettazione e trascinare il puntatore del mouse finché non verrano raggiunte le dimensioni richieste del bean. La dimensione iniziale verrà indicata da un rettangolo di riferimento. In qualsiasi altro gestore di layout è possibile soltanto spostare o aggiungere componenti.
Argomento principale: Definizione del layout dei componenti mediante l'editor visuale
Argomenti correlati
Gestori di layout e contenitori