import java.util.ArrayList; 
import java.util.List; 
import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.ComboBox; 
import javafx.scene.layout.HBox; 
import javafx.stage.Stage; 

public class Bugreport extends Application 
{ 

@Override 
public void start(Stage primaryStage) 
{ 
ComboBox<String> comboBox = new ComboBox<>(); 
comboBox.setEditable(true); 
List<String> l1 = new ArrayList<>(); 
l1.add("Text1"); 
l1.add("Text2"); 
l1.add("Text3"); 
l1.add("Text4"); 
l1.add("Text5"); 
comboBox.getItems().addAll(l1); 

Button btn = new Button(); 
btn.setText("Clear and Add"); 
btn.setOnAction(new EventHandler<ActionEvent>() 
{ 

@Override 
public void handle(ActionEvent event) 
{ 
System.out.println("---------------------------------"); 
System.out.println(comboBox.getItems().size()); 
System.out.println(comboBox.getEditor().getText()); 
System.out.println(comboBox.getSelectionModel().getSelectedIndex()); 
System.out.println(comboBox.getValue()); 
System.out.println(comboBox.valueProperty().get()); 
System.out.println(comboBox.valueProperty().getName()); 
System.out.println(comboBox.valueProperty().getValue()); 
System.out.println("---------------------------------"); 

String editorText = comboBox.getEditor().getText(); 
if (!l1.contains(editorText)) //Editor contains text which is not already in list 
{ 
//Clear everything in combobox 
comboBox.getItems().clear(); 
comboBox.getSelectionModel().clearSelection(); 
comboBox.setValue(null); 
comboBox.getEditor().clear(); 

// Add existing items along with a new item 
l1.add(editorText); 
comboBox.getItems().addAll(l1); 

// Combobox automatically sets value as the items are added even though all selection was cleared 
System.out.println("---------------------------------"); 
System.out.println(comboBox.getItems().size()); 
System.out.println(comboBox.getEditor().getText()); 
System.out.println(comboBox.getSelectionModel().getSelectedIndex()); 
System.out.println(comboBox.getValue()); 
System.out.println(comboBox.valueProperty().get()); 
System.out.println(comboBox.valueProperty().getName()); 
System.out.println(comboBox.valueProperty().getValue()); 
System.out.println("---------------------------------"); 
} 
} 
}); 

HBox root = new HBox(); 
root.getChildren().add(comboBox); 
root.getChildren().add(btn); 

Scene scene = new Scene(root, 300, 250); 

primaryStage.setTitle("Bug Report"); 
primaryStage.setScene(scene); 
primaryStage.show(); 
} 

public static void main(String[] args) 
{ 
launch(args); 
} 

} 
