2013-09-25 2 views
1

두 이미지를 비교하는 프로그램을 작성하고 있습니다. 각 이미지는 jScrollPane의 jLabel에 표시됩니다. 사용자가 & 이미지를 드래그하여 이미지를 jScrollPane 내부로 드래그하도록하고, 사용자가 이미지를 이동할 때 다른 이미지도 이동하도록하고 싶습니다. 문제는 서로 다른 크기의 두 이미지가있을 때 같은 크기로 이동하고 동시에 끝까지 도달하지 않기 때문입니다. 나는 슬라이더의 크기가 적절하게 움직이고 동시에 끝까지 도달 할 수 있도록 슬라이더의 크기를 찾으려고합니다. 스크롤 막대 슬라이더의 크기를 찾는 방법은 무엇입니까?

jScrollPane1 = new javax.swing.JScrollPane(); 
jScrollPane1.getHorizontalScrollBar().addAdjustmentListener(new HorizontalScrollBarMoved()); 
jScrollPane1.getVerticalScrollBar().addAdjustmentListener(new VerticalScrollBarMoved()); 


class HorizontalScrollBarMoved implements AdjustmentListener{ 
     @Override 
     public void adjustmentValueChanged(AdjustmentEvent ae){ 

      jScrollPane1.getHorizontalScrollBar().setValue(ae.getValue()); 
      jScrollPane2.getHorizontalScrollBar().setValue(ae.getValue()); 
      jScrollPane3.getHorizontalScrollBar().setValue(ae.getValue()); 
     } 
    } 

class VerticalScrollBarMoved implements AdjustmentListener{ 
     @Override 
     public void adjustmentValueChanged(AdjustmentEvent ae){ 

      jScrollPane1.getVerticalScrollBar().setValue(ae.getValue()); 
      jScrollPane2.getVerticalScrollBar().setValue(ae.getValue()); 
      jScrollPane3.getVerticalScrollBar().setValue(ae.getValue()); 
     } 
    } 


private void imageLabel1MouseDragged(java.awt.event.MouseEvent evt) {           

     int horizontalScrollBarInitialValue, verticalScrollBarInitialValue; 
     horizontalScrollBarInitialValue = ScrollPane1.getHorizontalScrollBar().getValue(); 
     verticalScrollBarInitialValue = jScrollPane1.getVerticalScrollBar().getValue(); 

     jScrollPane1.getHorizontalScrollBar().setValue(horizontalScrollBarInitialValue - (evt.getX() - mousePressedX)/30); 
     jScrollPane1.getVerticalScrollBar().setValue(verticalScrollBarInitialValue - (evt.getY() - mousePressedY)/30);   
    } 

mousePressedX

내가 먼저 이미지를 드래그하는 마우스를 눌러 위치를 X 좌표 저장되어있는 변수이다.

답변

0

슬라이더 크기를 알 수 있을지 의심 스럽습니다. 자동으로 튜닝되었습니다. 오히려 JScrollPage의 크기를 찾고 너의 눈에 보이는 크기 인 View과 비교해야합니다.

+0

jScrollPane 안에 표시되는 이미지의 크기가 슬라이더의 크기와 scrollBar의 나머지 공간의 합임을 알게되었습니다. 실제로 스크롤바에서 나머지 공간의 크기를 알아야하고, 내가 생각할 수있는 유일한 방법은 먼저 슬라이더의 크기를 찾는 것입니다. – seby598

+0

왜 이미지의 상단을 찾고 JScrollPane # getHeight, 또는 이미지 왼쪽과 JScrollPage # getWidth를 비교하지 않을까요? – Archer

+0

예를 들어, 너비가 1024이고 JScrollPage # getWidth가 420 인 이미지가 있는데, 슬라이더를 scrollBar의 끝으로 이동하면 이미지가 이동 한 값은 610이됩니다. 따라서 슬라이더 크기는 1024-610 = 414. 크기가 너무 다르기 때문에 JScrollPage # getWidth를 사용하여 내 문제를 해결하는 방법을 모르겠습니다. – seby598

관련 문제