Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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_Combobox_Javafx_Eventhandler - Fatal编程技术网

Java 选择组合框项目两次(一行)

Java 选择组合框项目两次(一行),java,combobox,javafx,eventhandler,Java,Combobox,Javafx,Eventhandler,我是Java新手,所以如果我的代码不好,我会提前道歉 我有一个带listener的组合框 myCombobox.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { myMethod(); } }); public void myMethod() { try { value = m

我是Java新手,所以如果我的代码不好,我会提前道歉

我有一个带listener的组合框

myCombobox.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        myMethod();
    }
});


public void myMethod() {
    try {
        value = myCombobox.getSelectionModel().getSelectedItem().toString();
        logger.info( "value: " + value );
        int id = myCombobox.getSelectionModel().getSelectedIndex();
        logger.info( "id: " + id );

        model.setSavedRequestID(id);
        model.setSavedRequestContent(id);

        // saved=id;
        hostCmbBox.getSelectionModel().select(developmentTopPanelModel.getHost());
    } catch (Exception ex) {
        logger.error(ex.getMessage());
    }
}
myCombobox.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
myMethod();
}
});
公共方法(){
试一试{
value=myCombobox.getSelectionModel().getSelectedItem().toString();
logger.info(“值:”+值);
int id=mycombox.getSelectionModel().getSelectedIndex();
logger.info(“id:+id”);
model.setSavedRequestID(id);
model.setSavedRequestContent(id);
//保存=id;
hostCmbBox.getSelectionModel().select(developmentTopPanelModel.getHost());
}捕获(例外情况除外){
logger.error(例如getMessage());
}
}
用户可以从组合框中选择一个项目,然后在文本区域中显示该项目的文本。然后,用户可以在文本区域中修改此文本,这是所需的功能。但是,如果用户想要返回到原始文本,他们会在组合框中再次选择相同的项目,但由于该项目已被选中,因此不会发生任何事情

任何想法都将不胜感激


谢谢

这是基于什么API的?秋千,AWT,SWT,Android?我能看到你绕开这个问题的唯一方法是替换
selectionModel
,这样你就可以截取更改点并允许重复值引发事件…@MadProgrammer你有什么样的代码来告诉我你的意思吗?对不起,这真的很新鲜,我觉得当用户更改在文本区域中,您应该更改组合框中的选定项(可能是新项,表示新文本)。这既能解决问题,又能使UI与底层数据更加一致。@James_D感谢您的建议-当文本区域和组合框位于两个不同的控制器中时,这可能吗?