May 19

When you add a JTextField to a BoxLayout managed panel it will expand vertically to take up available space.

To avoid this you can simply set the maximum size of the field to be the same as its preferred size.

textField.setMaximumSize( textField.getPreferredSize() );

written by objects \\ tags: , ,

Apr 28

By default components added to a JToolBar will be left aligned. Often we want to shift some item to the right (for example a Help button is often displayed to the right).

The JToolBar uses a BoxLayout to layout it’s components. This allows us to simply add some ‘glue’ to push subsequently added components to the right.

JToolBar toolbar = new JToolBar();

// These buttons will be left aligned by default

toolbar.add(new JButton("Open"));
toolbar.add(new JButton("Save"));

// add some glue so subsequent items are pushed to the right

toolbar.add(Box.createHorizontalGlue());

// This Help button will be right aligned

toolbar.add(new JButton("Help"));

written by objects \\ tags: , , ,