В следующем коде я демонстрирую разницу между java и javaFX2 в том, что касается генерации события MOUSE_CLICKED, которое я не знаю, следует ли его ожидать или его можно рассматривать как ошибку.
ЭтоКажется, что в JavaFX 2.0 вы можете нажать кнопку мыши, перемещать мышь столько, сколько вам нужно, а затем, когда вы отпустите кнопку, будет вызвано событие mouseClicked.В отличие от JAVA, где, если после нажатия кнопки мыши вы перемещаете мышь, а затем отпускаете кнопку, событие MouseClicked не будет запущено.
Чтобы доказать это, попробуйте следующий код, где при нажатии мышипрямоугольник рисуется в точке щелчка.Даже если вы нажмете левую кнопку, переместите мышь, а затем отпустите кнопку, прямоугольник будет нарисован (в той точке, где вы отпустили кнопку мыши) ...
public class MouseClickTester extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
final Group root = new Group();
Rectangle rect = new Rectangle(0, 0, 300, 300);
rect.setFill(Color.RED);
rect.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
Rectangle yellowRect = new Rectangle(me.getSceneX(), me.getSceneY(),10,50);
yellowRect.setFill(Color.YELLOW);
root.getChildren().add(yellowRect);
}
});
root.getChildren().add(rect);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
Следующий код делает то же самое, но в простой Java.Но на этот раз, если вы перемещаете мышь, пока нажата левая кнопка, а затем отпускаете ее, прямоугольник не будет отрисован, так как событие mouseClicked не будет запущено.быть оправданным?Кто ведет себя правильно, а кто нет?И после этого, как я могу эмулировать щелчок мышью в javaFX 2,0, чтобы вести себя так же, как в Java?
Спасибо за помощь!
PS.импорт отсутствует!