이미지 (JLabel)에 사각형을 그릴 수있는 Java 응용 프로그램을 작성하려고합니다. 문제는 직사각형이 나타나지 않아야한다는 것입니다.사각형이 아닌 위치에 표시
마우스를 드래그public void mouseClicked(MouseEvent e) {
System.out.println("X:"+e.getX()+"Y:"+e.getY());
}
I : 그것은
나는 X를 얻을와 y는 다음과 같이 시작 지점 좌표 .. 화면이 아닌 이미지와 구성 요소의 왼쪽 상단 모서리에서 시작 끝 x, y를 얻고 repaint를 호출하십시오.public void mouseDragged(MouseEvent e) {
if(e.getSource().equals(label)) {
System.out.println("X:"+e.getX()+"Y:"+e.getY());
endX = e.getX();
endY = e.getY();
repaint();
}
}
그래서 어떻게하면 레이블에 상대적인 X를 얻을 수 있습니까? 창문이 아니라? 0,0이 레이블의 시작이되기를 원합니다.
마우스 리스너는 라벨에 추가됩니다
label.addMouseListener(this);
label.addMouseMotionListener(this);
레이블 레이아웃 porpuse에 대한 패널에 추가됩니다.
업데이트 : 좌표를 인쇄 해 보았습니다. 그들은 괜찮은 것 같습니다 ..하지만 사각형은 여전히 내가 원하는 곳이 아닙니다. JFrame에 그려져있는 것 같습니다. 라벨에 무엇을 칠하나요?
전유 : 문제는 결코 예상하지 못했던 부분이었습니다. 방금 내 레이블에서 그래픽 객체를 꺼내서 그려 봤습니다.
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 물론 부모 구성 요소가 아닌 레이블에 리스너를 추가하는 것도 한 가지 방법 일 수 있습니다. –