많은 온라인지도에이 기능이 있습니다. 이미지의 왼쪽/오른쪽 끝에 도달하면 반대편을보고있는 것입니다. 이 기능은 JavaFX에서 어떻게 구현 가능하며 scrollPane과 호환됩니까? 또한, 래핑 할 때 원본 이미지 또는 이미지 복사본을 볼 것입니까 (이전의 선호도 포함)? 내가 구체적으로 달성하고자하는 것에 대해 질문 할 경우 아래에 질문하십시오.이미지가 화면을 "랩 어라운드"합니다. JavaFX
1
A
답변
2
동일한 Image
을 여러 개의 ImageView
에 표시 할 수 있습니다. 이렇게하면 이미지가 메모리에 한 번만 저장됩니다.
ScrollPane
여기서는 좋은 선택이 아닙니다. ScrollPane
에서 지원하지 않는 "무한"창을 만들려고하기 때문입니다.
다음 예제에서는 사용자가 Mona Lisas의 2 x 2 그리드를 이동하고 창의 전체 내용 영역을 이미지로 덮도록 조정합니다. 이미지 크기와 보이는 영역에 따라 큰 격자가 필요할 수 있습니다. (왼쪽 상단부터 시작하여 x/y 방향으로 보이는 영역에 몇 개의 이미지가 들어가는 지 확인한 다음 필요한 수의 격자 크기를 결정하기 위해이 숫자에 하나씩 더합니다.)
@Override
public void start(Stage primaryStage) {
Image image = new Image("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/687px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg");
GridPane images = new GridPane();
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
images.add(new ImageView(image), x, y);
}
}
Pane root = new Pane(images);
images.setManaged(false);
class DragHandler implements EventHandler<MouseEvent> {
double startX;
double startY;
boolean dragging = false;
@Override
public void handle(MouseEvent event) {
if (dragging) {
double newX = (event.getX() + startX) % image.getWidth();
double newY = (event.getY() + startY) % image.getHeight();
if (newX > 0) {
newX -= image.getWidth();
}
if (newY > 0) {
newY -= image.getHeight();
}
images.setLayoutX(newX);
images.setLayoutY(newY);
}
}
}
DragHandler handler = new DragHandler();
root.setOnMouseDragged(handler);
root.setOnDragDetected(evt -> {
images.setCursor(Cursor.MOVE);
handler.startX = images.getLayoutX() - evt.getX();
handler.startY = images.getLayoutY() - evt.getY();
handler.dragging = true;
});
root.setOnMouseReleased(evt -> {
handler.dragging = false;
images.setCursor(Cursor.DEFAULT);
});
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
관련 문제
- 1. 셀레늄 소스 랩 이미지가 올바른 섹션
- 2. JavaFX 센터 이미지가 작동하지 않습니다.
- 3. JavaFX 2.1에서 이미지가 표시되지 않습니다.
- 4. JavaFX 배치 - 이미지가 손실 됨
- 5. 화면을 터치하면 이미지가 픽셀 화됩니다.
- 6. CSS 이미지가 화면을 덮지 않습니다.
- 7. 이미지가 외부 화면을 채우지 않습니다.
- 8. JAXB 랩 랩 모음
- 9. 랩
- 10. 랩
- 11. JavaFX - ImageView - 왜 이미지가 렌더링되지 않습니까?
- 12. 특정 이미지가 상대 경로로로드되지 않습니다. JavaFX
- 13. 배경 이미지가 더 이상 화면을 채우지 못합니다.
- 14. 왜 화면을 돌릴 때 이미지가 사라 집니까?
- 15. 화면을 터치하면 왜 이미지가 나타나지 않습니까?
- 16. 배경 이미지가 전체 화면을 덮지 않습니다.
- 17. UILabel 워드 랩/문자 랩
- 18. 랩 긴 HTML 테이블
- 19. 랩 단어
- 20. 랩 텍스트보기
- 21. 랩 UIPickerView?
- 22. Direct3D.Texture에서 "랩 어라운드"효과
- 23. OpenGL ES 2.0, 텍스처 이미지가 화면을 채우지 못함
- 24. 두 이미지가 충돌 할 때 종료 화면을 생성하는 방법은 무엇입니까?
- 25. 크고 긴 이미지가 다른 속도로 화면을 스크롤하면서 화면의 왼쪽에서 벗어납니다.
- 26. 부트 스트랩 마크 업에서 화면을 벗어나는 이미지가 있습니다.
- 27. 이 jQuery를 호버 + 랩 기능
- 28. 이미지가
- 29. GridView 집게 확대/축소 및 무한 스크롤 (랩 어라운드)
- 30. JavaFx 이미지 크기 조정