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 № 1Domyś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!!!");
}
});