简体   繁体   中英

Swing GUI components too tighly packed

In the Java Swing app I made it seems to me that all the component are too tightly packed.

In QT one can specify padding and margins for the layout.

Is there something similar for swing?

alt text http://img12.yfrog.com/img12/9612/screenshotscreenerconfi.png

Here is a screen shot of my application that I thing is too tight (is it? what do you think?.

Thanks.

You could use MiGLayout as your layout manager. It allows all kinds of customizations, including margins/paddings.

Take a look to the GridBagLayoutManager . Its the most compex layout manager but everything can be acomplished whith it.

It uses the GridBagConstraintObject which has the inset property, it specifies the separation to the top, bottom, left and right components.

example: GridBagConstraintObject.insets.left=20

You could achieve a much better layout for the example above by using DesignGridLayout in just a couple of lines of code (one per row in your layout). DesignGridLayout will automatically use the correct spacing for the runtime platform.

besides I would highly suggest that you DON'T use TitledBorders in your form because it prevents ANY LayoutManager (as advanced as it may be) from automatically aligning correctly the various components across different groups. Instead you could use a JLabel with a JSeparator (there are examples in DesignGridLayout, but this works with any other LayoutManager).

Since Java 1.6 swing there is a new GroupLayout manager that make this kind of works easier.

For instance there is a method: setAutoCreateGaps() that:

...you add two components to a SequentialGroup a gap between the two components is automatically be created...

For instance:

替代文字

What LayoutManager are you using? Adding margins is quite easy, it depends however on the specific LayoutManager used.

FormLayout is another good layout manager. With a good GUI editor like JFormDesigner it makes GUI building easy enough. JFormDesigner actually automatically adds sufficient padding in most cases. I have to recommend against using GridBagLayout. It does the job alright, but is very complex which makes it difficult to use and maintain.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM