GridBagLayout ed GridBagConstraints

di il
4 risposte

GridBagLayout ed GridBagConstraints

Buonasera,

Sto usando come Layout GridBagLayout;
Vorrei mettere in riga, due (o più) Panel, composti da tre elementi.

Il problema è che a Video si vede solo il primo Panel, mentre il secondo non compare.

Vi posto il codice:

public class GUI {
	private JFrame frame;
	private JPanel panel;
	private JPanel panel_A;
	private JPanel panel_B;
	private JPanel panel_C;
	private GridBagLayout GBL;
	private GridBagConstraints GBC;
	
	public GUI() {    	
    	frame = new JFrame("Prova");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        
        panel = new JPanel();
		GBL = new GridBagLayout();
		panel.setLayout(GBL);
		GBC = new GridBagConstraints();
		GBC.anchor = GridBagConstraints.WEST;
		GBC.gridx=0;
		GBC.gridy=1;

		panel_A = new JPanel();
		panel_A.add(new JTextField("TEST A"));
		panel_A.add(new JButton("A"));
		panel_A.add(new JLabel("A"));
		GBL.setConstraints(panel_A,GBC);
		panel.add(panel_A);
        
		panel_B = new JPanel();
		panel_B.add(new JTextField("TEST B"));
		panel_B.add(new JButton("B"));
		panel_B.add(new JLabel("B"));
		GBL.setConstraints(panel_B,GBC);
		panel.add(panel_B);
		
		frame.add(panel);
        frame.pack();
        frame.setVisible(true);
		}
}

Dove sbaglio?

Grazie.

4 Risposte

  • Re: GridBagLayout ed GridBagConstraints

    Ciao,

    stai sovrapponendo il secondo al primo... devi cambiare colonna per il secondo ...

    Per il primo......
    GBC.gridx = 0;
    GBC.gridy = 0;
    Per il secondo.....
    GBC.gridx = 1;
    GBC.gridy = 0;

    // panel A
    GBC = new GridBagConstraints();
    GBC.anchor = GridBagConstraints.WEST;
    GBC.gridx = 0;
    GBC.gridy = 0;
    panel_A = new JPanel();
    panel_A.add(new JTextField("TEST A", 10)); // aggiunto size per chiarezza
    panel_A.add(new JButton("A"));
    panel_A.add(new JLabel("A"));
    panel.add(panel_A, GBC);
    		
    // panel B
    GBC = new GridBagConstraints();
    GBC.anchor = GridBagConstraints.WEST;
    GBC.gridx = 1;
    GBC.gridy = 0;
    panel_B = new JPanel();
    panel_B.add(new JTextField("TEST B", 10));
    panel_B.add(new JButton("B"));
    panel_B.add(new JLabel("B"));
    panel.add(panel_B, GBC);
    
  • Re: GridBagLayout ed GridBagConstraints

    08/04/2025 - By65Franco ha scritto:

    Stai sovrapponendo il secondo al primo... devi cambiare colonna per il secondo ...

    Per il primo......
    GBC.gridx = 0;
    GBC.gridy = 0;
    Per il secondo.....
    GBC.gridx = 1;
    GBC.gridy = 0;

    Grazie mille, così funziona, ora ho capito lo sbaglio ;-)

  • Re: GridBagLayout ed GridBagConstraints

    08/04/2025 - java999 ha scritto:

    08/04/2025 - By65Franco ha scritto:

    Stai sovrapponendo il secondo al primo... devi cambiare colonna per il secondo ...

    Per il primo......
    GBC.gridx = 0;
    GBC.gridy = 0;
    Per il secondo.....
    GBC.gridx = 1;
    GBC.gridy = 0;

    Grazie mille, così funziona, adesso ho capito lo sbaglio.

    Bene !!!  ma non ci rifare più ...!!!!!!      ;-))

  • Re: GridBagLayout ed GridBagConstraints

    Bene !!!  ma non ci rifare più ...!!!!!!      ;-))

    :-)

Devi accedere o registrarti per scrivere nel forum
4 risposte