뷰포트의 뷰를 확대하고 싶지만 내부의 구성 요소 위치가 인 경우 변경되지 않습니다. 설정은 jscrollpane 안에 큰 jpanel 이있는 것입니다.이 모드에서는 뷰를 확대/축소 모드로만 변경하려고합니다. 개체를 패널 내부 어디에서나 드래그 앤 드롭 할 수 있으므로 xy 위치가 중요한 이유입니다.JScrollPane 내부 구성 요소가있는 뷰 확대
여기 내 현재 줌 코드가 있는데, 나는 그래픽 2d 배율을 사용하여 뷰를 확대/축소합니다. 문제는 그 직책이 엉망이라는 것이다. 또한 전체 패널이 jscrollpane에 맞도록 축소하고 싶습니다.
//zoom in draw method using scale
g2.translate(zoomX, zoomY);
g2.scale(zoomScale, zoomScale);
g2.translate(-zoomX, -zoomY);
또한 뷰포트를 조작하려고합니다. 여기 내 뷰포트 초기화입니다. 2000 by 1000 차원이 패널이고 750 by 698이 내 뷰포트의 extentsize입니다. 구성 요소의 위치를 어지럽히 지 않고 줌하는 방법에 대한 제안? setviewposition을 이동하는 것이 솔루션의 일부일 수 있습니까?
view = new JViewport();
view.setViewSize(new Dimension(2000,1000));
view.setExtentSize(new Dimension(750,698));
view.setViewPosition(new Point(view.getExtentSize().width/2,view.getExtentSize().height/2));
JScollPane 확대/축소가 원하는 지점으로 중앙 정렬을 포함하여 여기에서 검색하십시오. – mKorbel
예 scrollpane을 사용하는 많은 확대/축소 솔루션이 있지만이 기능을 사용하려면 전체지도 패널 확대/축소 기능과 같아야합니다. jscrollpane 내부는 뷰에서만 축소됩니다. 다른 솔루션은 이미지가있는 jscrollpane을 확대/축소하기위한 것이지만 패널 안에 드래그 앤 드롭 할 수있는 내부의 구성 요소가있는 jscrollpane은 사용할 수 없습니다. 그것의 시스코 패킷 추적 응용 프로그램과 같은 확대/축소 및 라우터와 스위치는 확대 후 조작 할 수 있습니다. –
Google지도의 코딩 방법은 모르겠지만 실제로는 확대/축소가 아닌보기 전환이 가능합니다. – mKorbel