Re: TotallyGridBag
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