java - 检测鼠标点击 SELECTION Editable ComboBox JavaFX

标签 java javafx combobox

这个问题乍一看似乎很简单,但我已经困扰了几天了。

所以,我的问题是,当组合框选择打开并且单击鼠标来选择选项时,我想检测鼠标单击和选择。

因此,它应该做的是检测所选内容上的鼠标单击并获取所选值:

enter image description here

PS:我的 ComboBox 的代码可以在这里看到: Select JavaFX Editable Combobox text on click

欢迎提出其他问题。

最佳答案

只需使用单元工厂,并向单元注册处理程序:

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);
    }
}

关于java - 检测鼠标点击 SELECTION Editable ComboBox JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875100/

相关文章:

java - 使用带有 OCI 驱动程序的 OracleDataSource 获取失效连接

JavaFX 将标签文本属性绑定(bind)到多个属性更改

mysql - 组合框未填充 mysql 数据

combobox - 一个组合框中的选定项目如何更改第二个组合框中的特定项目?

java - 严重 : Servlet. servlet [jsp] 的 service() 引发异常 java.lang.NumberFormatException

java - 使用 Log4j SyslogAppender 时定义 PatternLayout 的最佳实践

java - Camel Salesforce 组件 REST API salesforce :query cannot retrieve records

JavaFx,多线程应用程序,奇怪的异常

java - InvalidModuleDescriptorException : Package hellofx. org.openjfx 在模块中找不到

html - 如何仅使用 CSS 设置 <select> 下拉菜单的样式?