簡體   English   中英

檢測鼠標單擊 SELECTION Editable ComboBox JavaFX

[英]Detect mouse click on SELECTION Editable ComboBox JavaFX

這個問題乍一看似乎很簡單,但我已經有好幾天了。

所以,我的問題是,當 ComboBox 選擇打開並單擊鼠標以選擇選項時,我想檢測鼠標單擊和選擇。

因此,它應該做的是檢測選擇上的鼠標單擊並獲取選定的值:

在此處輸入圖片說明

PS:我的組合框的代碼可以在這里看到: 點擊選擇 JavaFX 可編輯組合框文本

隨時提出其他問題。

只需使用單元工廠,並在單元中注冊一個處理程序:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListCell;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ComboBoxMouseClickOnCell extends Application {

    @Override
    public void start(Stage primaryStage) {
        ComboBox<String> combo = new ComboBox<>();
        combo.getItems().addAll("One", "Two", "Three");
        combo.setCellFactory(lv -> {
            ListCell<String> cell = new ListCell<String>() {
                @Override
                protected void updateItem(String item, boolean empty) {
                    super.updateItem(item, empty);
                    setText(empty ? null : item);
                }
            };
            cell.setOnMousePressed(e -> {
                if (! cell.isEmpty()) {
                    System.out.println("Click on "+cell.getItem());
                }
            });
            return cell ;
        });

        Scene scene = new Scene(new StackPane(combo), 300, 180);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM