JavaFX - 处理重复的子错误 - RadioButtons

时间:2014-10-15 15:13:34

标签: java javafx

我有三个单选按钮,我希望上传GUI取决于我点击的复选框。

我曾参考过这个指南:http://docs.oracle.com/javafx/2/ui_controls/radio-button.htm 这似乎是我的需求的理想选择。但是,尽管导入了正确的库,但它无法识别类型。我决定写自己的小代码。

我们有水平盒子和垂直盒子。我已将标签和文本元素添加到一个水平框中(由hb,hb1,hb2 ...表示),并将它们组合在一个垂直框中。

这是我的单选按钮事件监听器的代码:

test1.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {

        try{
            //Remove all existing children
            vb.getChildren().removeAll(hb,hb2,hb3,hb4,hb5);
            log("Cleared");
        } catch(Exception e)
        {
            log(e.getMessage());
        }
        try{
            //Add email and email text into a horizontal box
            hb.getChildren().addAll(email, email_text);
            hb.setSpacing(10);
            //Added the box to the vertical box
            vb.getChildren().add(hb);

            log("Added the email input box");
        }
        catch(Exception e){
            log(e.getMessage());
        }
    }
});

声明:

final ToggleGroup group = new ToggleGroup();

final RadioButton test1 = new RadioButton("Test 1");
test1.setToggleGroup(group);
grid.add(test1, 0, 1);

final RadioButton test2 = new RadioButton("Test 2");
test2.setToggleGroup(group);
grid.add(test2, 0, 2);

final  VBox vb = new VBox(10); // main container
final HBox hb = new HBox(); // Email , Email Text
final HBox hb2 = new HBox(); // Corporate , Corporate Name

我收到错误:Children: duplicate children added: parent = HBox@359889fd。我对此进行了一些研究:java.lang.IllegalArgumentException: Children: duplicate children added: parent = VBox@872be7。老实说,即使我们都在处理同样的问题,我也很难获得他的代码。

我的主要问题:如果我在开头删除所有元素,为什么会出现重复错误?

也许,我的代码可能完全错误,没有任何意义。你推荐其他方法吗?

1 个答案:

答案 0 :(得分:0)

主要问题是我正在删除vb框,但我没有删除hb的内容。然而,我正在添加hb。我也应该从hb中删除。