Modifica della dimensione della griglia in una griglia
-
27-10-2019 - |
Domanda
Sto solo cercando di aggiungere 3 pulsanti verticali centrati a un GridBaglayout in Java Swing. In questo momento credo che la dimensione della griglia predefinita sia 3x3. Volevo sapere se posso cambiarlo e aggiungere più colonne e righe. Voglio semplicemente realizzare 3 butoni equidistanti centrati in un riquadro.
pane.setLayout(new GridLayout(10,1));
// Insert a space before the first button
for (int i = 1; i < 6; i++ ){
pane.add(new JLabel(""));
}
pane.add(new Button("1"));
pane.add(new Button("2"));
pane.add(new Button("3"));
// Insert a space after the last button
pane.add(new JLabel(""));
Questa è stata la soluzione finale grazie a tutti!
Soluzione
Sono d'accordo con @chris a GridLayout
Sarebbe più facile:
myPanel.setLayout(new GridLayout(5,1));
// Insert a space before the first button
add(new JLabel(""));
add(new Button("1"));
add(new Button("2"));
add(new Button("3"));
// Insert a space after the last button
add(new JLabel(""));
Altri suggerimenti
Basta aggiungere più valori agli attributi pesi. Questo gli dice come disporre la griglia - 0 significa usare solo lo spazio necessario, quindi il resto dello spazio è diviso in base ai pesi indicati.
GridBagLayout gbl = new GridBagLayout();
...
gbl.columnWeights = new double[] {1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
gbl.rowWeights = new double[] {1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
...
contentPane.setLayout(gbl_contentPane);
E poi dai i tuoi articoli GridBagConstraints
insieme a gridx
e gridy
Impostare in modo appropriato (da 0) per le nuove colonne/righe:
GridBagConstraints gbc = new GridBagConstraints();
...
gbc.gridx = 3;
gbc.gridy = 3;
...
contentPane.add(textFieldName, gbc_textFieldName);