我想有一个动作进行时,我从我的选择项目listview
中的JavaFX 2,我用一个NetBeans的JavaFX应用FXML和SceneBuilder.OnMouseClicked
SceneBuilder中的方法不起作用.它给了我一个错误,它无法找到我已经声明的方法.
有人可以告诉我他们是如何设法让它工作的吗?
Ulu*_*Biy 28
你不能单独在FXML文件中这样做.在FXML文件的Controller类中
定义相应的listView(假设fx:id="myListView"
在FXML中):
@FXML
private ListView<MyDataModel> myListView;
Run Code Online (Sandbox Code Playgroud)
在init/start方法中添加监听器,它将监听列表视图项的更改:
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);
}
});
Run Code Online (Sandbox Code Playgroud)
MyDataModel
可以是您自己的数据结构模型类或只是一个String
.
对于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);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35036 次 |
最近记录: |