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
jScrollPane 안에 표시되는 이미지의 크기가 슬라이더의 크기와 scrollBar의 나머지 공간의 합임을 알게되었습니다. 실제로 스크롤바에서 나머지 공간의 크기를 알아야하고, 내가 생각할 수있는 유일한 방법은 먼저 슬라이더의 크기를 찾는 것입니다. – seby598
왜 이미지의 상단을 찾고 JScrollPane # getHeight, 또는 이미지 왼쪽과 JScrollPage # getWidth를 비교하지 않을까요? – Archer
예를 들어, 너비가 1024이고 JScrollPage # getWidth가 420 인 이미지가 있는데, 슬라이더를 scrollBar의 끝으로 이동하면 이미지가 이동 한 값은 610이됩니다. 따라서 슬라이더 크기는 1024-610 = 414. 크기가 너무 다르기 때문에 JScrollPage # getWidth를 사용하여 내 문제를 해결하는 방법을 모르겠습니다. – seby598