开发者

Swing layout - Using a grid while keeping component dimensions

I'd like to make a login bar for an application and I can't figure out how to organize a series of JLabels and JTextFields such that they are organized in a horizontal grid without these same components being resized to fit each cell. I also want to make sure that the group of components isn't resized below a certain width. How can this be achieved?

Edit: Thanks for the answers everyone. I'll have a look at MigLayout and SpringLayout later. Du开发者_JAVA百科e to time constraints I'm going to have to make do with Visual Editor and use a null layout. The component placement and dimensions have to be adjusted by hand but at least they stay put. Here's a picture showing what I wanted to do.

bar http://img145.imageshack.us/img145/7356/bargw.png


Use MigLayout as your layout manager, it's extremely flexible, and supports what you're asking quite easily. You can set size constraints. If you need any further help, post some example code using Swing and MigLayout which shows what you're trying to do, and then I'll advise you on how to do what you want to achieve.

You probably want some additional cells which 'grow' to fill the remaining space. This can be achieved with column constraints, by inserting 'push' between the columns (specified by [..]) to expand the gap. You don't need any placeholder components in this case. (i.e., [pref!]10px[40px::]push[pref!]10px[40px::])


You have to use different layout. FlowLayout or BoxLayout will work in your case, but I would suggest MigLayout simply because it will cover all your needs and replace all others .


Check out the section from the Swing tutorial on Using Layout Managers.

The SpringLayout has an example that does exaclty this.

The GridBagLayout is more difficult to use but also support row/column type layout.

Finally, you can still use a GridLayout. Just add the text fields to a JPanel first, then the panel will grow but the text field won't.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜