현재 프로그램에 BufferedImage로로드하는 이미지가 있습니다. 이 BufferedImage는, 고정 사이즈의 JPanel 클래스 내에 배치됩니다.Java에서 BufferedImage를 사용하여 큰 이미지 크기보기
이제 내가 직면 한 문제는이 고정 된 크기의 JPanel 내부에서이 큰 BufferedImage를 어떻게 패닝 할 수 있는지입니다.
JPanel 크기가 이미지보다 확실히 작습니다.
감사합니다.
현재 프로그램에 BufferedImage로로드하는 이미지가 있습니다. 이 BufferedImage는, 고정 사이즈의 JPanel 클래스 내에 배치됩니다.Java에서 BufferedImage를 사용하여 큰 이미지 크기보기
이제 내가 직면 한 문제는이 고정 된 크기의 JPanel 내부에서이 큰 BufferedImage를 어떻게 패닝 할 수 있는지입니다.
JPanel 크기가 이미지보다 확실히 작습니다.
감사합니다.
먼저 이미지가 너무 크거나 높을 때만 표시되는 일부 스크롤 막대를을 사용하여 JPanel (남동쪽 및 동쪽)에 연결합니다. 남은 공간 (가운데)에 또 다른 JPanel
을 붙이십시오. 그 내부의 JPanel
에서 paintComponent
메서드를 무시하고 BufferedImage
부분을 JPanel
에 그립니다. 스크롤 막대의 오프셋을 사용하여 이미지를 오프셋하고 너비와 높이 (뷰포트)를 내부 인 JPanel
으로 지정합니다.
참고 : 스크롤 막대는 값이 변경 될 때마다 내 JPanel
repaint
메서드를 호출합니다.
paintComponent
은 이미지를 다시 그려야 할 때마다 자동으로 (또는 수동으로) 시스템에서 호출됩니다. 이렇게하면 이미지를 제공하는보기를 사용자 정의 할 수 있습니다 (그러한 기능이 필요한 경우).
JPanel
에 일부를 첨부하고 마우스 이동에 따라 스크롤 막대의 오프셋을 수정할 수도 있습니다 귀하의 구성 요소와 마우스 상호 작용을 위해. 그냥 생각.
이미지를 호스팅하는 패널의 기본 크기 (최소 가능 크기)를 이미지의 동일한 크기로 설정할 수도 있습니다. – MadProgrammer
예를 들어 http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html을 확인하십시오. 'x','y','width','height' 만 있으면됩니다. 이 값들은'paintComponent' 메쏘드가 호출 될 때 항상 사용 가능하며 그릴 이미지의 보이는 부분을 정의합니다. –
그러나 부모 컨테이너를 기반으로 이미지의 크기를 조정하려는 경우가 아니면 이미지 크기에 따라 패널의 크기를 layou 관리자에게 제안 할 수 있습니다. 너비와 높이 만 요구하면 x, y는 뷰포트에 의해 처리되어야 함 – MadProgrammer