5
我想在我從我的listview
中選擇javafx 2中的項目時執行操作。 我使用Netbeans JavaFX fxml應用程序和SceneBuilder。 SceneBuilder中的OnMouseClicked
方法不起作用。它給了我一個錯誤,它找不到我已經聲明的方法。如何通過從JavaFX中的ListView中選擇一個項目來執行操作2
有人能告訴我他們是如何設法使其工作?
我想在我從我的listview
中選擇javafx 2中的項目時執行操作。 我使用Netbeans JavaFX fxml應用程序和SceneBuilder。 SceneBuilder中的OnMouseClicked
方法不起作用。它給了我一個錯誤,它找不到我已經聲明的方法。如何通過從JavaFX中的ListView中選擇一個項目來執行操作2
有人能告訴我他們是如何設法使其工作?
你不能在FXML文件中單獨做到這一點。
定義在控制器類中FXML文件的相應的ListView(假設fx:id="myListView"
在FXML):
@FXML
private ListView<MyDataModel> myListView;
添加聽者在初始化/啓動方法,該方法將偵聽到列表視圖項目的更改:
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問題。我嘗試了它作爲一個字符串..像String a =「test」;和ObservableList data = FXCollections.observableArrayList( 「chocolate」,「blue」);兩者都不適合我..它要求上課..你能舉個例子嗎? –