Is there a “Group Box” equivalent in Java Swing?

前端 未结 7 1500
野的像风
野的像风 2021-01-30 19:50

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

相关标签:
7条回答
  • 2021-01-30 20:23

    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.

    0 讨论(0)
  • 2021-01-30 20:24

    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.

    0 讨论(0)
  • 2021-01-30 20:31

    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)

    0 讨论(0)
  • 2021-01-30 20:33

    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));

    0 讨论(0)
  • 2021-01-30 20:38

    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"

    0 讨论(0)
  • 2021-01-30 20:43

    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.

    0 讨论(0)
提交回复
热议问题