【问题标题】:Java Swing add buttons group to JTabbedPaneJava Swing 将按钮组添加到 JTabbedPane
【发布时间】:2014-08-13 15:28:03
【问题描述】:

我在 Java Swing 的 JTabbedPane 内添加一组按钮时遇到问题。在窗格中添加单个单选按钮没有问题,但是当我尝试添加一组单选按钮时,Eclipse 向我显示“容器类型中的方法 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中添加按钮组也没有问题。

【问题讨论】:

  • 另外,您发布的代码中还有一个问题,您没有导入与您正在使用的组件对应的swing类,例如JFrameJPanelButtonGroupJRadioButtonJTabbedPane
  • 这只是代码的一部分(我提到过)。整个代码有 1000 多行......我只传递了与问题相关的部分代码。

标签: java swing jtabbedpane


【解决方案1】:

ButtonGroup 添加到JPanel 后,您将看不到任何内容。它按逻辑对您的 2 个单选按钮进行分组。您应该做的是将单选按钮添加到您已经完成的按钮组中,然后将单选按钮添加到 jpanel 并将它们放置在适当的位置。

【讨论】:

  • 这是问题所在,这不起作用。我正在尝试将创建的按钮组添加到此面板,但在 Eclipse 上出现错误:Container 类型中的方法 add(Component) 不适用于参数 (ButtonGroup)。我尝试按照 Eclipse 的建议解决这个问题,但没有成功。
  • 不要将按钮组添加到 JPanel。将您的 JRadioButtons 添加到 ButtonGroup,然后将这些单选按钮添加到 Jpnale
【解决方案2】:

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

【讨论】:

  • 这实际上是我正在尝试做的......我创建了新的 JPanel addCustomer,而不是我试图将创建的按钮组添加到这个面板并且我在 Eclipse 上收到错误:方法 add( Container 类型中的 Component) 不适用于参数 (ButtonGroup)。我试图按照 Eclipse 的建议解决这个问题,但没有成功。我也将这些按钮单独添加到此面板,但错误是一样的。
  • @Alonuch:再次,您对该错误的主要误解是您将 ButtonGroup 添加到 GUI 而不是 JPanel,而您不能这样做。我不知道如何解释这比这更简单。
  • @Alonuch:澄清一下,您正在向您的 JTabbedPane 添加一个 ButtonGroup 并且再次无法执行此操作。您应该添加已添加按钮的 JPanel。我相信你能弄清楚这一点。继续努力。
猜你喜欢
  • 2015-10-30
  • 2020-10-03
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
相关资源
最近更新 更多