codice:import java.awt.Component; import java.awt.Container; import java.awt.GraphicsEnvironment; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Point; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; /* * GridBagDemo.java * * Created on 8 aprile 2005, 10.07 */ /** * * @author mau */ public class GridBagDemo extends JFrame{ private Container container; private GridBagLayout layout; private GridBagConstraints constraints; /** Creates a new instance of GridBagDemo */ public GridBagDemo() { super("GridBagLayout"); container = getContentPane(); layout = new GridBagLayout(); container.setLayout(layout); //istanzia l'oggetto GridBagConstraints constraints = new GridBagConstraints(); //crea i componenti GUI JTextArea textAre1 = new JTextArea("TextArea1", 5, 10); JTextArea textAre2 = new JTextArea("TextArea2", 5, 4); String names[] = {"Iron", "Steel", "Brass"}; JComboBox comboBox = new JComboBox(names); JTextField textField = new JTextField("TextField"); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); JButton button3 = new JButton("Button 3"); //weightx e weighty per textAre1 sono entrambi 0: il valore di //anchor per tutti i componenti e' CENTER(il valore di default) constraints.fill = GridBagConstraints.BOTH; addComponenet(textAre1, 0, 0, 1, 3); //wheightx e wheighty per button1 sono entrambi 0(il valore di default) constraints.fill = GridBagConstraints.HORIZONTAL; addComponenet(button1 , 0, 1, 2, 1); //weightx e weighty per comboBox sono entrambi 0(il valore di default) //fill vale HORIZONTAL addComponenet(comboBox, 2, 1, 2, 1); //button2 constraints.weightx = 1000;//puo' diventare piu' largo constraints.weighty = 1;//puo' diventare piu' alto constraints.fill = GridBagConstraints.BOTH; addComponenet(button2, 1, 1, 1, 1); //fill vale BOTH per button3 constraints.weightx = 0; constraints.weighty = 0; addComponenet(button3, 1, 2, 1, 1); //weightx e weighty per textField sono entrambi 0, fill vale BOTH addComponenet(textField, 3, 0, 2, 1); //weightx e weighty per textArea2 sono entrambi 0, fill vale BOTH addComponenet(textAre2, 3, 2, 1, 1); Point center = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint(); setBounds(center.x - 300/2, center.y - 150/2, 300, 150); setVisible(true); }//fine costruttore private void addComponenet(Component component, int row, int column, int width, int height){ //imposta gridx e gridy constraints.gridx = column; constraints.gridy = row; //imposta gridWidth e gridHeight; constraints.gridwidth = width; constraints.gridheight = height; //imposta i vincoli e aggiunge i componeneti layout.setConstraints(component, constraints); container.add(component); } /** * @param args the command line arguments */ public static void main(String[] args) { GridBagDemo application = new GridBagDemo(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }