JavaFX中多次选择项后setPromptText()方法失效问题求助
问题解决:ComboBox切换选项后提示文本不显示
问题根源在于:当你切换DevelopmentType选项时,LanguageProgramming可能还保留着之前选中的值。ComboBox的提示文本仅在未选中任何值的状态下才会显示,所以即便调用了setPromptText(),只要存在选中值,提示文本就不会出现。
修改你的DevelopmentTypeEvent方法,在设置选项和提示文本前,先清空LanguageProgramming的选中值:
public void DevelopmentTypeEvent(){ // 清空第二个ComboBox的选中值,让提示文本有显示条件 LanguageProgramming.setValue(null); if(DevelopmentType.getValue().equals("Back-end")){ LanguageProgramming.setPromptText("Select a language programming"); LanguageProgramming.setItems(listLanguageProgrammingBackEnd); } else if(DevelopmentType.getValue().equals("Front-end")){ LanguageProgramming.setPromptText("Select a language programming"); LanguageProgramming.setItems(listLanguageProgrammingFrontEnd); } }
逻辑说明
LanguageProgramming.setValue(null)会清除当前选中项,让组件回到未选择状态- 此时设置的提示文本就能正常显示
- 切换选项列表后强制用户重新选择,也符合功能交互逻辑
内容的提问来源于stack exchange,提问作者Cat Dragon
相关产品推荐
相关产品推荐

