Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #707

Re: TotallyGridBag

From "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this>
Subject Re: TotallyGridBag
Message-ID <1169035511.688189.5730@m58g2000cwm.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
References <cuadnUiRd5qTkDPYnZ2dnUVZ8tignZ2d@bt.com>
Date 2011-04-27 15:29 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
Ian Wilson wrote:
> I was putting together some comparisons of Layout Managers and am a bit
> stuck with GridBagLayout.

(chuckle) When I saw you recommending it
on another groups, I was almost about to add
that I preferred nested layouts, for any number
of reasons.

>...In the example below, if you resize the frame
> so it is a bit narrower, the Password JTextField collapses to zero width.

Yep.

> Clues?
>
> ------------------------------------------------------------------
> 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 FormSmallGridBag extends JPanel {
>      FormSmallGridBag() {
>          setLayout(new GridBagLayout());
>          GridBagConstraints gc = new GridBagConstraints();
>          gc.gridx = 0;
>          gc.gridy = 0;
>          gc.anchor = GridBagConstraints.LINE_END;
>          add(new JLabel("Name:"), gc);
>          gc.gridx = 1;
>          gc.gridy = 0;
>          gc.anchor = GridBagConstraints.LINE_START;
>          gc.fill = GridBagConstraints.HORIZONTAL;
>          gc.weightx = 0.9;
>          add(new JTextField(16), gc);
>          gc.gridx = 0;
>          gc.gridy = 1;
>          gc.fill = GridBagConstraints.NONE;
>          gc.weightx = 0.0; // reset to default
>          add(new JLabel("Password:"), gc);
>          gc.gridx = 1;
>          gc.gridy = 1;

         JTextField tf = new JTextField(10);
         tf.setMinimumSize( new java.awt.Dimension(30,20) );
         add(tf, gc);  // (Does not) Collapses (too far) if frame
shrunk!

>      }
>
>      public static void main(String[] args) {
>          SwingUtilities.invokeLater(new Runnable() {
>              public void run() {
>                  JFrame f = new JFrame("Form Small - GridBagLayout");
>                  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>                  f.add(new FormSmallGridBag());
>                  f.pack();
>                  f.setVisible(true);
>              }
>          });
>      }
> }
> ------------------------------------------------------------------

GBL usually behaves until it strikes a component
with no minimum size set, but cannot give it its
preferred size.  Then it simply reduces it to '0'.

That is one of the reasons I avoid it.  I have
encountered no layout besides GBL that you
need to worry about setting a minimum size.

Andrew T.

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

TotallyGridBag "Ian Wilson" <ian.wilson@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000
  Re: TotallyGridBag "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000
    Re: TotallyGridBag "Ian Wilson" <ian.wilson@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000

csiph-web