Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: setLayout

  1. #1

    setLayout

    stò creando un layout e vorrei fare in modo che qualsiasi cosa la posiziono come voglio io. ho dato una dimensione al textField() ma vorrei anche posizionarlo. ho impostarti il tutto in setLayout(new GridBagLayout);

    creando i vari gridx e gridy mi posiziona il tutto al centro... vorrei capire perché...

    grazie

  2. #2
    Aspetta attiviamo la visione a raggi X - Beta - Gamma, guardiamo direttamente sul tuo hardisk e ti facciamo sapere.....
    Ovviamente skerzo la vista a raggi Gamma non esiste.....
    Posta il codice se no come facciamo a sapere cosa stai combinando...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Non vorrei dire una sciocchezza comunque dovresti prima definire un GridBagConstraints e poi usare i vari gridx e gridy.
    Ti posto una parte del codice della mia interfaccia grafica:
    codice:
    GridBagConstraints c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            panel1.add(label1,c);
            c.gridx = 1;
            c.gridy = 0;
            textFieldNome.setColumns(10);
            panel1.add(textFieldNome,c);
            c.gridx = 1;
            c.gridy = 1;
            textFieldIndirizzo.setColumns(10);
            panel1.add(textFieldIndirizzo,c);
            c.gridx = 1;
            c.gridy = 2;
            textFieldNumero.setColumns(10);
            panel1.add(textFieldNumero,c);
            c.gridx = 1;
            c.gridy = 3;
            panel1.add(buttonAggiungi,c);
            c.gridx = 0;
            c.gridy = 4;
            panel1.add(label2,c);
            c.gridx = 1;
            c.gridy = 4;
            textFieldCercato.setColumns(10);
            panel1.add(textFieldCercato,c);
            c.gridx = 1;
            c.gridy = 5;
            panel1.add(buttonCerca,c);
    in quel modo vai a definire le coordinate del componente sul layout.
    Ripeto, non so se ho detto una cosa inesatta.

  4. #4
    ok ... inserisco solo la parte interessata... poi se non è sufficiente mi fai sapere ma credo che basta ....
    non è ancora completo perché lo stò creando...

    comunque tutti i JLabel e JTextField voglio che vanno a sx ed in alto del layout... invece me li crea tutti al centro seppur impostati come li voglio io...
    spero di essere stato chiaro :P

    codice:
    public Menu() {
    super(titolo);
            super.setJMenuBar(menuBar);
            panelCenter = new JPanel();
            super.getContentPane().add(panelCenter);
            JLabel scegliProd = new JLabel("Scegli il prodotto da inserire nel box testo dal menu");
            JLabel insQuant = new JLabel("Inserisci la quantità che vuoi prendere");
            JLabel tipoProd = new JLabel("Tipo prodotto scelto");
            JLabel tot = new JLabel("Totale da pagare");
            JLabel totPerProd = new JLabel("Totale prezzo per prodotto");
    
            JTextField insProd = new JTextField();
            insProd.setPreferredSize(new Dimension(200,20));
            JTextField quant = new JTextField();
            quant.setPreferredSize(new Dimension(200,20));
            JTextField prodUno = new JTextField();
            prodUno.setPreferredSize(new Dimension(200,20));
            JTextField prodDue = new JTextField();
            prodDue.setPreferredSize(new Dimension(200,20));
            JTextField prodTre = new JTextField();
            JTextField prodQuattro = new JTextField();
            JTextField prodCinque = new JTextField();
            JTextField prodSei = new JTextField();
    
            JTextField totProdUno = new JTextField();
            JTextField totProdDue = new JTextField();
            JTextField totProdTre = new JTextField();
            JTextField totProdQuattro = new JTextField();
            JTextField totProdCinque = new JTextField();
            JTextField totProdSei = new JTextField();
            JTextField totPagare = new JTextField();
    
            panelCenter.setLayout(new GridBagLayout());
    
            GridBagConstraints gbc = new GridBagConstraints();
    
            gbc.gridx = 0;
            gbc.gridy = 0;
    panelCenter.add(scegliProd, gbc);
    
            gbc.gridx = 0;
            gbc.gridy = 1;
            panelCenter.add(insProd, gbc);
    
            gbc.gridx = 0;
            gbc.gridy = 2;
            panelCenter.add(insQuant, gbc);
    
            gbc.gridx = 0;
            gbc.gridy = 3;
            panelCenter.add(quant, gbc);
    
            gbc.gridx = 1;
            gbc.gridy = 1;
            panelCenter.add(tipoProd, gbc);
    
            gbc.gridx = 1;
            gbc.gridy = 2;
            panelCenter.add(prodUno, gbc);
    
            gbc.gridx = 1;
            gbc.gridy = 3;
            panelCenter.add(prodDue, gbc);

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Si hai già fatto quello che ti dicevo prima effettivamente.

  6. #6
    si,lo ho creato il newGridBagConstraints

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Non vorrei ci sia un problema di dimensione delle componenti e che quindi vengano ridimensionate in base allo spazio presente nella finestra. Però non saprei.

  8. #8
    francesco.muia si è spaventato scherzo...

  9. #9
    Quote Originariamente inviata da francesco51 Visualizza il messaggio
    francesco.muia si è spaventato scherzo...
    Magari ogni tanto devo pur lavorare naaaaaaaaaaaaaaaaaaaaa.....

    Cmq il problema non è nel tuo PanelCenter (GridBagLayout) ma del layout del container in cui lo metti "super.getContentPane().add(panelCenter);" dal codice postato non si capisce quel contentPanel che layout ma andando a naso o è un borderLayout oppure il layout di default,
    Per avere il panel center in alto a sinistra ti basta settare il layout del suo contenitore a FlowLayout e se lo vuoi allineato a sinistra allora dovrai anche costruire il FlowLayout specificando l'allineamento.
    codice:
    package it.fmuia.games.jscacchi.gui;
    
    
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    
    
    public class TestGridBag extends JFrame
    {
    	public TestGridBag()
    	{
    		super("TEst");
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLayout(new FlowLayout(FlowLayout.LEFT));
    		JPanel panelCenter = new JPanel();
    
    
    		JLabel scegliProd = new JLabel("Scegli il prodotto da inserire nel box testo dal menu");
    		JLabel insQuant = new JLabel("Inserisci la quantità che vuoi prendere");
    		JLabel tipoProd = new JLabel("Tipo prodotto scelto");
    		JLabel tot = new JLabel("Totale da pagare");
    		JLabel totPerProd = new JLabel("Totale prezzo per prodotto");
    
    
    		JTextField insProd = new JTextField();
    		insProd.setPreferredSize(new Dimension(200, 20));
    		JTextField quant = new JTextField();
    		quant.setPreferredSize(new Dimension(200, 20));
    		JTextField prodUno = new JTextField();
    		prodUno.setPreferredSize(new Dimension(200, 20));
    		JTextField prodDue = new JTextField();
    		prodDue.setPreferredSize(new Dimension(200, 20));
    		JTextField prodTre = new JTextField();
    		JTextField prodQuattro = new JTextField();
    		JTextField prodCinque = new JTextField();
    		JTextField prodSei = new JTextField();
    
    
    		JTextField totProdUno = new JTextField();
    		JTextField totProdDue = new JTextField();
    		JTextField totProdTre = new JTextField();
    		JTextField totProdQuattro = new JTextField();
    		JTextField totProdCinque = new JTextField();
    		JTextField totProdSei = new JTextField();
    		JTextField totPagare = new JTextField();
    
    
    		panelCenter.setLayout(new GridBagLayout());
    
    
    		GridBagConstraints gbc = new GridBagConstraints();
    
    
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		panelCenter.add(scegliProd, gbc);
    
    
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		panelCenter.add(insProd, gbc);
    
    
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		panelCenter.add(insQuant, gbc);
    
    
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		panelCenter.add(quant, gbc);
    
    
    		gbc.gridx = 1;
    		gbc.gridy = 1;
    		panelCenter.add(tipoProd, gbc);
    
    
    		gbc.gridx = 1;
    		gbc.gridy = 2;
    		panelCenter.add(prodUno, gbc);
    
    
    		gbc.gridx = 1;
    		gbc.gridy = 3;
    		panelCenter.add(prodDue, gbc);
    		this.add(panelCenter);
    		this.pack();
    	}
    
    
    	public static void main(String[] args)
    	{
    		SwingUtilities.invokeLater(new Runnable()
    		{
    
    
    			@Override
    			public void run()
    			{
    				TestGridBag b = new TestGridBag();
    				b.setVisible(true);
    			}
    		});
    	}
    }
    P.S se mi spaventassi davanti a queste cose..... ti farei vedere su che macelli mi tocca lavorare.....

  10. #10
    tranquillo scherzavo...sò che stai lavorando e sò che lavorate su cose molto complicate...
    grazie comunque ora ci provo...

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.