JavaFXテキストフィールドに入力されたキーによってトリガされるこのコードは、常に1文字の後ろにあります。たとえば、ユーザーがkを入力すると、searchBar.getText()に出力される文字列は ""と等しくなります。ユーザーが別のkを入力すると、kと等しくなります。JavaFXテキストフィールドを1文字の後ろにつけるとき
//this is triggered when a key is typed into search bar
@FXML public void onKeyPressedOnSearch(){
File[] fileCollection = model.getFileCollection();
System.out.println(searchBar.getText());
System.out.println(fileCollection[0].getName().substring(0, searchBar.getText().length()));
List<String> list = new ArrayList<String>();
ObservableList<String> tempObservableList = FXCollections.observableList(list);
/* for(int i = 0; i < fileCollection.length; i++){
if(!(searchBar.getText().equals(fileCollection[i].getName().substring(0, searchBar.getText().length())))){
tempObservableList.remove(i);
}
}
if(searchBar.getText() == null || searchBar.getText() == ""){
songList.setItems(observableList);
}else{
songList.setItems(tempObservableList);
} */
}
あなたはonKeyReleasedを聞くべきでしょうか? – tsolakp
@tsolakp私もそれを試みました。 –