Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA] GridBagConstraints

    Ciao a tutti! :adhone:
    Come da oggetto, qualche anima pia mi darebbe una dritta su ste benedette GridBagConstraints?

    Codice PHP:
    public MyFrame(String title)
    {
        
    super(title);
        
    mainPanel = new JPanel(new GridBagLayout());
        
    menuBar = new JMenuBar();
        
    Close = new JMenu("Close");
        
    menu2 = new JMenu("menu2");
        
    close = new JMenuItem("Close");
        
    close.addActionListener(
            new 
    ActionListener()
            {
              public 
    void actionPerformed(ActionEvent e)
              {
                
    System.exit(-1);
              }
            });
        
    Close.add(close);
        
    menuBar.setBackground(Color.blue);
        
    menuBar.add(
            
    Close,
            new 
    GridBagConstraints(
              
    0,0,2,1,
              
    1.0,0.0,
              
    GridBagConstraints.WEST,GridBagConstraints.NONE,
              new 
    Insets(0,0,0,0),
              
    5,0));
        
    menuBar.add(
            
    menu2,
            new 
    GridBagConstraints(
              
    1,0,2,1,
              
    1.0,0.0,
              
    GridBagConstraints.WEST,GridBagConstraints.NONE,
              new 
    Insets(0,0,0,0),
              
    5,0));

        
    inputPanel = new JPanel(new GridBagLayout());
        
    address = new JTextField();
        
    address.setSize(40,5);
        
    ok = new JButton("OK");
        
    //ok.setSize(10,5);
        
    ok.addActionListener(
            new 
    ActionListener()
            {
              public 
    void actionPerformed(ActionEvent e)
              {
                  
    doConnection();
              }
            });
            
    inputPanel.add(
                
    address,
                new 
    GridBagConstraints(
                  
    0,0,3,1,
                  
    0.0,0.0,
                  
    GridBagConstraints.WEST,GridBagConstraints.NONE,
                  new 
    Insets(0,0,0,0),
                  
    0,0));
            
    inputPanel.add(
                
    ok,
                new 
    GridBagConstraints(
                  
    1,0,1,1,
                  
    0.0,0.0,
                  
    GridBagConstraints.EAST,GridBagConstraints.NONE,
                  new 
    Insets(0,0,0,0),
                  
    0,0));

        
    outputPanel = new JPanel();
        
    output = new JLabel();
        
    outputPanel.add(output);

        
    mainPanel.add(menuBar,
            new 
    GridBagConstraints(
              
    0,0,4,1,
              
    0.0,2.0,
              
    GridBagConstraints.NORTHWEST,GridBagConstraints.NONE,
              new 
    Insets(0,0,0,0),
              
    200,0));
        
    mainPanel.add(inputPanel,
            new 
    GridBagConstraints(
              
    0,1,4,2,
              
    0.0,1.0,
              
    GridBagConstraints.CENTER,GridBagConstraints.NONE,
              new 
    Insets(0,0,0,0),
              
    0,0));
        
    mainPanel.add(outputPanel,
            new 
    GridBagConstraints(
              
    0,2,4,1,
              
    0.0,1.0,
              
    GridBagConstraints.SOUTH,GridBagConstraints.NONE,
              new 
    Insets(0,0,0,0),
              
    0,0));
        
    this.getContentPane().add(mainPanel);
        
    this.setSize(400,200);
        
    this.setLocation((int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight()/2),
                         (int)(
    Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2));
        
    this.show();

    Quello che non capisco è come organizzare i vari elementi, perchè durante le mie prove non sono riuscito a posizionarli dove e come vorrei io. Ad esempio eseguendo il codice postato:
    1) la menuBar non è posizionata a sx, sebbene abbia impostato la GridBagConstraints.NORTHWEST;
    2) non riesco a dare più spazio tra gli stessi elementi della menuBar;
    3) non riesco a posizionare il JPanel di mezzo (inputPanel) al centro (verticalmente);
    4) non riesco ad allargare il JTextField in modo da fargli occupare più spazio in orizzontale.

    Insomma, le dimensioni e le proporzioni, come si settano praticamente?

    Mi sembra che sia il modo più flessibile per gestire i layout, ma anche molto complesso. Anche esempi, tutorial, etc... sono ben accetti (oltre eventuali consigli sui punti sopra :tongue: )!
    Grazie mille a tutti!

  2. #2

  3. #3
    Originariamente inviato da dokk
    Non ci credo! Nessuno?!?
    Ehi Floyd! Ti ho visto! :adhone:

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    mi hanno chiesto di fare uno script digital
    appena ho finito lo guardo

  5. #5
    Originariamente inviato da floyd
    mi hanno chiesto di fare uno script digital
    appena ho finito lo guardo
    Grande! :metallica Aspetto allora... ma cos'è uno script digital?!? :master:
    Uè pure gli altri... piano con la coda eh! :gren:

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1.0;
    c.gridheight = 1;
    c.gridwidth = 1;
    Button button = new Button(name);
    gridbag.setConstraints(button, c);
    add(button);
    c.gridheight = 2
    c.gridwidth = 2
    JPanel panel = new JPanel();
    gridbag.setConstraints(panel, c);
    add(panel);
    usalo in questo modo
    ho scritto un codice che immagino faccia un casino ma ti da' l'idea

  7. #7
    Originariamente inviato da floyd
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1.0;
    c.gridheight = 1;
    c.gridwidth = 1;
    Button button = new Button(name);
    gridbag.setConstraints(button, c);
    add(button);
    c.gridheight = 2
    c.gridwidth = 2
    JPanel panel = new JPanel();
    gridbag.setConstraints(panel, c);
    add(panel);
    usalo in questo modo
    ho scritto un codice che immagino faccia un casino ma ti da' l'idea
    Grazie mille! appena arrivo a casa lo provo!
    P.S.: hai qualche link con tutorials ed esempi sull'utilizzo di Swing e in particolare GridBagLayout? Oppure un libro... (se è gratis è meglio)

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    trovi qualche esempio nel javadoc

  9. #9
    Originariamente inviato da floyd
    trovi qualche esempio nel javadoc
    mmm... un pò misero però il javadoc... grazie mille comunque Floyd!

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.