원클릭으로
javafx-gestures-touch-input
Handle JavaFX gestures, pinch-to-zoom, panning, and multi-touch interaction with explicit transform ownership.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Handle JavaFX gestures, pinch-to-zoom, panning, and multi-touch interaction with explicit transform ownership.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Build JavaFX 3D modeling tools and print/export workflows with isolated geometry generation and preview rendering.
Choose and integrate mature third-party JavaFX control libraries for forms, productivity widgets, theming, and developer workflow support.
Build JavaFX terminal emulators or shell-style console panes with background process I/O, ANSI handling, and safe FX-thread updates.
Build node-based JavaFX workflow editors, graph canvases, and visual programming surfaces with clean model separation.
Animate JavaFX UIs with Timeline, Transition, Canvas, and AnimationTimer-based render loops.
Manage the JavaFX Application lifecycle, primary stage setup, startup sequencing, and shutdown behavior.
| name | javafx-gestures-touch-input |
| description | Handle JavaFX gestures, pinch-to-zoom, panning, and multi-touch interaction with explicit transform ownership. |
| triggers | ["javafx pinch zoom","gesturefx","javafx touch input","tuiofx"] |
| compatibility | {"java":"17+","javafx":"21+"} |
| category | ui-advanced |
| tags | ["gestures","touch","zoom","pan","input"] |
| metadata | {"scope":"repository","maturity":"starter"} |
| allowed-tools | ["view","rg","apply_patch"] |
Use this skill when the UI needs touch-aware interaction: zoomable viewports, pannable canvases, or multi-touch surfaces. Libraries such as GestureFX and TuioFX are useful once gestures become central to the product.
import javafx.application.ConditionalFeature;
import javafx.application.Platform;
import javafx.scene.image.ImageView;
import javafx.scene.input.ScrollEvent;
import javafx.scene.layout.StackPane;
public class ZoomPane extends StackPane {
public ZoomPane(ImageView imageView) {
getChildren().add(imageView);
addEventFilter(ScrollEvent.SCROLL, event -> {
if (!event.isControlDown()) {
return;
}
double factor = event.getDeltaY() > 0 ? 1.1 : 0.9;
imageView.setScaleX(imageView.getScaleX() * factor);
imageView.setScaleY(imageView.getScaleY() * factor);
event.consume();
});
if (Platform.isSupported(ConditionalFeature.INPUT_TOUCH)) {
setStyle("-fx-background-color: derive(cornflowerblue, 80%);");
}
}
}