Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在启用和禁用之间更改文本字段_Java_Wicket 1.5 - Fatal编程技术网

Java 在启用和禁用之间更改文本字段

Java 在启用和禁用之间更改文本字段,java,wicket-1.5,Java,Wicket 1.5,我有2个单选按钮和1个文本字段,现在我想在启用和禁用文本字段之间进行更改。如果选择radioFindText,则必须启用TextField,否则必须禁用它。我曾经尝试过这样的代码,但它不起作用,我用尽了可能的解决方案。似乎从未调用onSelectionChanged方法,为什么 编辑 好的,我终于找到了一个解决方案,也许这对于在wicket工作了一段时间的ppl来说是显而易见的,但对于我的第一个项目,我发现很难解决它。这是工作代码 searchedText.setOutputMarkup

我有2个单选按钮和1个文本字段,现在我想在启用和禁用文本字段之间进行更改。如果选择radioFindText,则必须启用TextField,否则必须禁用它。我曾经尝试过这样的代码,但它不起作用,我用尽了可能的解决方案。似乎从未调用onSelectionChanged方法,为什么

编辑 好的,我终于找到了一个解决方案,也许这对于在wicket工作了一段时间的ppl来说是显而易见的,但对于我的第一个项目,我发现很难解决它。这是工作代码

    searchedText.setOutputMarkupId(true);
    RadioGroup group = new RadioGroup("group", selected);
    group.setOutputMarkupId(true);
    Radio radioErrors = new Radio("errors", new Model<String>("ERRORS"));
    Radio radioFindText = new Radio("text", new Model<String>("Find text"));
    group.add(radioFindText.add(new AjaxEventBehavior("onchange") {
        @Override
        protected void onEvent(AjaxRequestTarget art) {
            searchedText.setEnabled(true);
            art.add(searchedText);
        }
    }));
    group.add(radioErrors.add(new AjaxEventBehavior(("onchange")) {
        @Override
        protected void onEvent(AjaxRequestTarget art) {
            searchedText.setEnabled(false);
            art.add(searchedText);
        }
    }));
    group.add(searchedText);
    form.add(group);
searchedText.setOutputMarkupId(true);
放射组组=新放射组(“组”,选中);
setOutputMarkupId(true);
无线电错误=新无线电(“错误”,新型号(“错误”);
Radio radioFindText=新收音机(“文本”,新型号(“查找文本”);
add(radioFindText.add)(新的AjaxEventBehavior(“onchange”){
@凌驾
受保护的void onEvent(AjaxRequestTarget艺术){
searchedText.setEnabled(true);
第条添加(搜索文本);
}
}));
add(radioErrors.add)(新的AjaxEventBehavior((“onchange”)){
@凌驾
受保护的void onEvent(AjaxRequestTarget艺术){
searchedText.setEnabled(false);
第条添加(搜索文本);
}
}));
添加(searchedText);
表格.增补(组别);

自从我编写wicket以来,已经有很长一段时间了,但也许你可以用这个:

radioGroup.add(新AjaxFormSubmitBehavior(“onchange”){public void onSubmit(AjaxRequestTarget){…}


我想你需要这个来获得“一次改变”-通知

谢谢您的回答,但我不想从提交然后更改文本字段,但我想立即这样做,因此当选择此单选按钮时,文本字段将自动启用。您尝试过吗?我希望您在用户更改值后立即收到此通知…其他事情将你实际上是怎么做到的:“group.add(newajaxSelfUpdateTimerBehavior(Duration.seconds(1));”?我的意思是你应该从它那里得到某种通知?是的,我试过了,但什么也没发生。我使用这种自我更新是因为我认为它会刷新和更新收音机中的选项。我发现了这个:这和你的问题是一样的。他设法解决了这个问题。我早些时候发现了,并且已经尝试过了,但对我来说仍然不起作用。似乎我一直在错过一些东西,但我找不到它可以是什么。我已经尝试了所有可能的解决方案,从这个链接,你粘贴在这里…什么都没有。可能是因为这个主题是从2008年开始的,所以可能有些事情改变了。