Java Swing将按钮组添加到JTabbedPane

时间:2014-08-13 15:28:04

标签: java swing jtabbedpane

我在Java Swing中在JTabbedPane中添加一组按钮时遇到问题。将单个单选按钮添加到窗格中没有问题,但是当我尝试添加一组单选按钮时,Eclipse向我显示“Container类型中的方法add(Component)不适用于参数(ButtonGroup) “

以下是代码的一部分:

  import java.awt.*;

  public class MainSystemInterface {

     final static String ADDCUSTOMER = "Add New Customer";
     final static String SEARCHCUSTOMER = "Search for a Customer";
     final static String EDITCUSTOMER = "Account Details";
     final static JFrame frame = new JFrame("Jframe");

     public void addComponentToPane(Container pane) {

        final JTabbedPane tabbedPane = new JTabbedPane();
        tabbedPane.addTab(ADDCUSTOMER, addCustomerTab);

        JPanel addCustomerTab = new JPanel();

        JRadioButton rdbtnPremium = new JRadioButton("PREMIUM");
        rdbtnPremium.setBounds(397, 157, 71, 23);
        rdbtnPremium.setSelected(false);

        JRadioButton rdbtnBasic = new JRadioButton("BASIC");
        rdbtnBasic.setBounds(336, 157, 64, 23);
        rdbtnBasic.setSelected(true);

        //Group the radio buttons.
        ButtonGroup rdbtntgroup = new ButtonGroup();
        rdbtntgroup.add(rdbtnBasic);
        rdbtntgroup.add(rdbtnPremium);

        // Not working
        addCustomerTab.add(rdbtntgroup);

        //Working
        addCustomerTab.add(rdbtnBasic);
     }
  }

将按钮组添加到帧或JPanel也没有问题。

2 个答案:

答案 0 :(得分:2)

您必须将JRadioButtons本身添加到JPanel,然后将该JPanel添加到JTabbedPane。 ButtonGroup是一个逻辑构造,其唯一目的是确保一次只能选择一个JRadioButton。它不是可见组件,因此您无法将ButtonGroup添加到任何容器中。

答案 1 :(得分:2)

ButtonGroup添加到JPanel时,您将看不到任何内容。它是logcally组你的2个单选按钮。您应该做的是按照您已经完成的方式向按钮组添加单选按钮,然后将单选按钮添加到jpanel并将它们放置在适当的位置。