2012-03-09 12 views
2

JScrollPane에 여러 JPanel을 배치했습니다. 지금은 마우스가 프레임 밖에 있다면 JPanels를 드래그하지 않도록해야합니다.JScrollPane을 스크롤하면서 JScrollPane에있는 JLabel을 드래그

구성 요소를 한 방향으로 이동하면서 스크롤해야합니다. (예 : 구성 요소를 잡고 오른쪽 가장자리로 이동하면 구성 요소가 이동해야하며 JScrollPane도 동시에 스크롤해야합니다.) JScrollPane의가 (자동 스크롤?)하는 동안 기본적으로 모두 내가 드래그하고있는 동안 볼 수와해야 드래그에 대한 코드 그게 전부

int dX,dY; 
public void mousePressed(MouseEvent e) 
{ 
    dX = e.getLocationOnScreen().x - this.getX(); 
    dY = e.getLocationOnScreen().y - this.getY(); 
} 
public void mouseDragged(MouseEvent e) 
{ 
    this.scrollRectToVisible(getVisibleRect()); 
    this.setLocation(e.getLocationOnScreen().x - dX, e.getLocationOnScreen().y - dY); 
    dX = e.getLocationOnScreen().x - this.getX(); 
    dY = e.getLocationOnScreen().y - this.getY(); 
} 

. 화면 (변수)은 JFrame에 포함 된 JScrollPane으로 보내지는 JPanel입니다.

+0

문제를 자세히 설명해주십시오. 우리는 당신의 프로젝트에 대해 아무 것도 모른다고 가정합니다. –

+0

죄송합니다. 그것을 약간 지우려고했다. 당신이 그것을 얻는 지 확실하지 않은. –

+2

미안하지만 아마 나야.하지만 그 문제를 이해할 수있는 미지수가 너무 많아. [sscce] (http://sscce.org) 작성 및 게시를 고려하십시오. –

답변

3

스크롤 할 코드와 함께 scrollPaneView.setAutoScrolls (true)가 작동해야합니다.

자세한 내용은 JComponent # setAutoscrolls javadoc을 참조하십시오.

+0

'setAutoScrolls()'에 +1; ['ScrollAction'] (http://stackoverflow.com/a/7203419/230513)도 참조하십시오. – trashgod

+0

드래그되는 라벨이나 전체 패널에서 자동 스크롤을 설정 하시겠습니까? –

+0

마우스 수신기를 설치 한 구성 요소에 따라 다릅니다. –

관련 문제