2015-12-08 2 views
0

Я пытаюсь повернуть изображение на 90 градусов (JavaFX) каждый раз, когда кнопка нажата:JavaFX Поворот изображения

private void rotate90(ActionEvent e){ 
    if(currentImage != null){ 
     imageView.setRotate(90);  
    } 
} 

, но мой код вращается только изображение один раз, и после этого он просто останавливается. Пожалуйста, помогите, я был бы очень признателен.

+0

Пример вашего кода немного короткий: как вы называете метод? Почему вы проверяете 'currentImage' где он изменился? – hotzst

+0

Метод вызывается кнопкой: –

+0

MenuItem rot90 = новый MenuItem (bundle.getMessage ("rot90")); rot90.setOnAction (this :: rotate90); –

ответ

3

Первоначально значение свойства rotate равно 0. После выполнения rotate90 вы устанавливаете свойство равным 90. Каждый последующий вызов делает то же самое. См JavaDoc Вы можете добиться желаемого поведения через Rotation или путем обновления значения:

imageView.setRotate(imageView.getRotate() + 90); 
+0

спасибо, человек, который работает –

0

Используйте этот код: CW_90 -> ClockWise90 степени.

BufferedImage sourceImage; 
BufferedImage outputImage; 
Scalr.rotate(sourceImage, Scalr.Rotation.CW_90, outputImage); 
+0

Это хороший пример для людей, которые хотят работать только с буферизованными изображениями. Id рекомендует просто вытащить то, что вам нужно из класса ниже, перед созданием новой зависимости: https://github.com/rkalla/imgscalr/blob/master/src/main/java/org/imgscalr/Scalr.java –

Смежные вопросы