자바 swing에서 이미지를 setPreferredSize 를 통해 객체의 크기를 조절하면 짤림!
setPreferredSize()
이 메서드는 Dimension객체를 인자로 받으면서 해당 컴포넌트의 기본크기를 결정해줌. BorderLayout을 쓰고 있으면 영향X
getScaledInstance()
함수는 Image 클래스에서 사용할 수 있음!
ImageIcon imageSetSize(ImageIcon icon, int i, int j) { // image Size Setting
Image imgA = icon.getImage(); //ImageIcon을 Image로 변환.
Image imgB = imgA.getScaledInstance(i, j, java.awt.Image.SCALE_SMOOTH);
ImageIcon imgAB = new ImageIcon(imgB);
return imgAB;
}
예를 들면...!
imgTest = new ImageIcon("이미지 경로 밑 이미지 이름"); // ImageIcon 생성
imgTest = imageSetsize(imgTest, 25, 25); // 사용자 정의 메소드
컨포넌트.setIcon(imgTest); // 컴포넌트에 이미지 넣기
- ImageIcon 의 크기를 품질이 깨지지 않고 변환하기 위해서 Image 로 변환.
- Image 함수인 getScaledInstance() 를 통해 품질을 유지한 채 사이즈 변경
- 바로 사용을 위해 다시 ImageIcon 으로 변환 후 리턴