[java] JavaFX 화면 확대 및 축소 기능 구현

JavaFX는 다양한 GUI 기능을 제공하는 Java 기반의 UI 라이브러리입니다. 이 라이브러리를 사용하여 화면 확대 및 축소 기능을 구현하는 방법에 대해 알아보겠습니다.

1. Viewport와 Scale

화면 확대 및 축소 기능을 구현하려면 화면의 보이는 부분(Viewport)을 조정하고, 그에 따라 화면 전체를 축소 또는 확대해야합니다. 이를 위해 JavaFX에서는 ViewportScale을 사용합니다.

Viewport는 화면에서 보이는 부분을 나타냅니다. Scale은 화면 전체의 크기를 조절하는 데 사용됩니다.

2. 화면 확대 및 축소 이벤트 처리

JavaFX에서 화면 확대 및 축소 이벤트를 처리하기 위해 MouseEventEventHandler를 사용합니다. MouseEvent는 마우스 이벤트를 나타내며, EventHandler는 이벤트를 처리하는 메서드입니다.

먼저, 화면에서 마우스 휠을 움직였을 때의 이벤트를 처리하는 메서드를 구현해보겠습니다.

scene.setOnScroll(event -> {
    double zoomFactor = 1.1;
    double deltaY = event.getDeltaY();

    if (deltaY < 0) {
        zoomFactor = 1 / zoomFactor;
    }

    // 현재 화면 크기 저장
    double oldScale = group.getScaleX();
    double newScale = oldScale * zoomFactor;

    // 화면 확대/축소 적용
    group.setScaleX(newScale);
    group.setScaleY(newScale);
});

위 코드는 scene에서 발생한 Scroll 이벤트를 처리합니다. Scroll 이벤트는 마우스 휠을 움직였을 때 발생하며, event.getDeltaY()를 통해 휠의 움직임을 확인할 수 있습니다.

zoomFactor는 확대 및 축소 비율을 나타내며, deltaY 값에 따라 확대 또는 축소 여부를 결정합니다. 마우스 휠을 아래로 움직일 경우 1 / zoomFactor로 설정하여 축소합니다.

group은 화면을 포함하는 컨테이너입니다. setScaleX()setScaleY()를 사용하여 화면을 확대 또는 축소합니다.

3. 추가적인 구현 사항

위의 코드를 기반으로 확대 및 축소 기능을 구현할 수 있지만, 실제로는 화면 확대/축소를 제한하는 로직, 원하는 위치를 중심으로 확대/축소하는 로직 등을 추가로 구현해야합니다.

4. 참고 자료

위의 자료들은 JavaFX의 다양한 기능과 사용 방법에 대해 자세히 설명하고 있습니다. 참고하여 보다 쉽게 화면 확대 및 축소 기능을 구현해보세요.