ToggleGroup可在阳性java和阴性java之间切换

ToggleGroup可在阳性java和阴性java之间切换,java,Java,我试图创建一个切换按钮来更改所选的性别,我试图让它在男性和女性之间切换,但当我运行它并选择一个组时,它不会选择任何一个 ToggleGroup genderToggle = new ToggleGroup(); maleButton.setToggleGroup(genderToggle); maleButton.setUserData("male"); femaleButton.setToggleGroup(genderToggle);

我试图创建一个切换按钮来更改所选的性别,我试图让它在男性和女性之间切换,但当我运行它并选择一个组时,它不会选择任何一个

    ToggleGroup genderToggle = new ToggleGroup();
    maleButton.setToggleGroup(genderToggle); 
    maleButton.setUserData("male");
    femaleButton.setToggleGroup(genderToggle); 
    femaleButton.setUserData("female");
    submitButton.setOnAction(new ButtonListener());
    genderToggle.selectedToggleProperty().addListener(new ChangeListener<Toggle>()  
    { 
        public void changed(ObservableValue<? extends Toggle> ob, Toggle o, Toggle n) 
        {
            RadioButton rb = (RadioButton)genderToggle.getSelectedToggle(); 

        if (genderToggle.equals("male"))
        {
            maleButton.setSelected(true);
            femaleButton.setSelected(false);
        }
        else if (genderToggle.equals("female"))
        {
            maleButton.setSelected(false);
            femaleButton.setSelected(true);
        }
        else
        {
            maleButton.setSelected(false);
            femaleButton.setSelected(false);
        }
        } 
    });
ToggleGroup genderToggle=new-ToggleGroup();
maleButton.setToggleGroup(genderToggle);
maleButton.setUserData(“男性”);
femaleButton.setToggleGroup(genderToggle);
setUserData(“女性”);
setOnAction(newbuttonlistener());
genderToggle.selectedToggleProperty().addListener(新的ChangeListener())
{ 

public void changed(observevalue我认为问题在于您在toggle对象上使用了
.equals(…)
,而不是首先获取用户数据字段,因为这是您设置为性别字符串的字段。例如:

if (genderToggle.getUserData().equals("female"))
   {
      maleButton.setSelected(false);
      femaleButton.setSelected(true);
   }

你能提供一个最小的可复制的例子吗()最好提供一个例子来演示这个问题。你还应该包括你正在使用的库(根据一些方法和类名,我认为它是JavaFX?)。谢谢,这很有效!我在“祖父母”类中有一个getGender和setGender方法,它只允许性别为“男性”或“女性”“女性",我如何验证这个类中的数据是否等于超类?@Extrinsik eh这是原始问题的一部分吗?我不明白你的意思,你想比较两个具有相同超类的对象的字段吗?因为在这种情况下,只需使用getter,或者使字段受到保护。如果你想在super类,并将其与未更改的super类版本中返回的内容进行比较,您可以在扩展父类的类内调用'super.getField()'。最初按钮不起作用,在您的帮助下,我能够使其工作,但随后我想将这些值与super类进行比较,看看是“男性”还是“女性”在继续之前是一个有效的选项,因此我不必在当前使用的类中创建新方法。在您的帮助和一点研究的帮助下,我能够找到它并将其应用到我的其余代码中。感谢您花时间帮助我。