FXMLファイルだけではできません。
はFXMLファイルのコントローラクラスに対応するリストビュー(FXMLでfx:id="myListView"
を仮定)を定義します。
@FXML
private ListView<MyDataModel> myListView;
は、リストビュー項目の変化に耳を傾けるだろう方法を開始/ initの中にリスナーを追加します。
myListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<MyDataModel>() {
@Override
public void changed(ObservableValue<? extends MyDataModel> observable, MyDataModel oldValue, MyDataModel newValue) {
// Your action here
System.out.println("Selected item: " + newValue);
}
});
MyDataModel
は、独自のデータ構造モデルクラスまたは単にString
にすることができます。
文字列の例の場合、
@FXML
private ListView<String> myListView;
...
...
ObservableList<String> data = FXCollections.observableArrayList("chocolate", "blue");
myListView.setItems(data);
myListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
// Your action here
System.out.println("Selected item: " + newValue);
}
});
ありがとうございました。しかし、MyDataModelに問題があります。私はそれを文字列として試しました..文字列のように= "テスト"; ObservableList data = FXCollections.observableArrayList( "chocolate"、 "blue");両方は私のために働いていない..それはクラスを求める...あなたは私に例を教えてくれますか? –