Java 选择组合框项目两次(一行)
我是Java新手,所以如果我的代码不好,我会提前道歉 我有一个带listener的组合框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
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感谢您的建议-当文本区域和组合框位于两个不同的控制器中时,这可能吗?