/ / MouseListener na edytowalnym JavaFX ComboBox - combobox, javafx, javafx-8

MouseListener na edytowalnym JavaFX ComboBox - combobox, javafx, javafx-8

MouseEvent nie działa dla JavaFX ComboBox, gdy jest ustawiony do edycji. Działa dobrze na Non-editable ComboBox. Czy istnieje sposób ustawiania MouseEvent na edytowalnym ComboBox?

package editablecombobox;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class EditableComboBox extends Application {

@Override
public void start(Stage primaryStage) {
ComboBox combo = new ComboBox();
combo.setEditable(true);

combo.setOnMousePressed(new EventHandler<MouseEvent>() {    //adding MouseEvent on ComboBox
@Override
public void handle(MouseEvent event) {
System.out.println("MOUSE PRESSED!!!");
}

});

StackPane root = new StackPane();
root.getChildren().add(combo);

Scene scene = new Scene(root, 300, 250);

primaryStage.setScene(scene);
primaryStage.show();
}

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

}

setOnMousePressed nie działa.

Odpowiedzi:

0 dla odpowiedzi № 1

Domyślam się, że interesujesz się tylko edytowalnym obszarem TextField w ComboBox. Musisz dodać MouseListener Do edytora(TextField) z ComboBox. Spróbuj użyć:

combo.getEditor().setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("MOUSE PRESSED!!!");
}
});