JavaFx的下拉框监听事件
时间: 2023-06-25 17:04:31 浏览: 463
JavaFX的下拉框(ComboBox)监听事件可以通过添加一个ChangeListener来实现。
可以按照以下步骤来添加一个下拉框监听事件:
1. 获取ComboBox对象
```java
ComboBox comboBox = new ComboBox();
```
2. 添加ChangeListener
```java
comboBox.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
// 处理事件
System.out.println("Selected item: " + newValue);
}
});
```
在ChangeListener的changed方法中,可以处理下拉框值改变的事件。其中,observable是一个ObservableValue对象,它包含了下拉框的当前值,oldValue是下拉框改变前的值,newValue是下拉框改变后的值。
比如上述代码中,输出了下拉框选中的值。
完整示例代码:
```java
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ComboBoxDemo extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
ComboBox<String> comboBox = new ComboBox<>();
comboBox.getItems().addAll("Option 1", "Option 2", "Option 3");
comboBox.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("Selected item: " + newValue);
}
});
StackPane root = new StackPane(comboBox);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
阅读全文