Trying to build a GUI application in Java/Swing. I\'m mainly used to \"painting\" GUIs on the Windows side with tools like VB (or to be more precise, Gupta SQLWindows... wonder
I'm responding based on the Uri's comment which explaind what the OP meant by Group Box
:
Uri: I think he means the control group you see in many dialog boxes, where you have a square around a bunch of widgets such as radio buttons, for example.
As far as I know, every JComponent
can set a border for itself, so you don't need a second panel.
A Group box is just a set of 'logically grouped widgets'.
This in the swing world is a JPanel
.
Add your widgets to a JPanel
.
Set its border type to 'Titled Border' and give the title, same as the name of the VB6 'frame'.
Voila. You have your group box.
Not AFAIK, at least not with standard swing widgets.
In VB you have a group widget, which is essentially a panel + border.
In Swing you have a JPanel which is the container widget, and you create and set a border object on it only if you need one. One can argue that in a way that is more elegant since you don't pay for something you don't use (e.g., border)
Create a JPanel, and add your radiobuttons to it. Don't forget to set the layout of the JPanel to something appropriate.
Then call panel.setBorder(BorderFactory.createTitledBorder(name));
Others have already commetned about JPanel and using a TitledBorder, that's fine.
However, when playing with Swing LayoutManagers, you may find it annoying that components in different JPanels cannot align correctly (each panel has its own LayoutManager).
For this reason, it is a good practice (check "JGoodies" on the web for more details) in Swing GUIs to NOT use TitledBorders but rather separate groups of components in a JPanel by a JLabel followed by a horizontal JSeparator.
Ref. "First Aid for Swing"
Here's a quote from the JRadioButton javadocs since you brought up radio buttons.
An implementation of a radio button -- an item that can be selected or deselected, and which displays its state to the user. Used with a ButtonGroup object to create a group of buttons in which only one button at a time can be selected. (Create a ButtonGroup object and use its add method to include the JRadioButton objects in the group.)
Note: The ButtonGroup object is a logical grouping -- not a physical grouping. To create a button panel, you should still create a JPanel or similar container-object and add a Border to it to set it off from surrounding components.