나는이 분포 BorderLayout를있다. 또한 실제 이미지의 다른 비율 (20 %, 50 %, 100 % ...)로 이미지를 표시 할 수있는 옵션이 있습니다.레이아웃에서 공간을 어떻게 사용할 수 있습니까? <a href="https://i.stack.imgur.com/bVQzq.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/bVQzq.jpg" alt="enter image description here"></a></p> <p>나는 그것이 모든 공간을 사용할 채우도록 이미지 크기를 조절 넣을 빨간색 위치에서 :
//GET VALUES
int imageWidth = image1.getWidth();
int imageHeight = image1.getHeight();
System.out.println("Image: "+imageWidth + " "+ imageHeight);
int targetWidth = this.getBounds().width;
int targetHeight = this.getBounds().height;
System.out.println("Target: " + targetWidth + " "+ targetHeight);
//GET SCALE
float scaleWidth=1;
float scaleHeight=1;
if (imageWidth > targetWidth) {
scaleWidth = (float) targetWidth/(float) imageWidth;
}
if (imageHeight > targetHeight) {
scaleHeight = (float) targetHeight/(float) imageHeight;
}
return min(scaleWidth, scaleHeight);
문제는 내가 (BorderLayout.CENTER의 경우) 사용 가능한 공간의 크기를 찾을 수 있다는 것입니다 :
나는 이미지가 완벽하게 밀착되는 스케일 인자를 찾기 위해 노력하고있어. 나는 코드 창 크기에 쓴하지만 그건 잘못된, 나 또한으로 시도된다this.getLayout().preferredLayoutSize(this).width;
뿐만 아니라 잘못된 값을 제공하거나 적어도 내가 찾을려고하지 무슨. 그리고 크기와 관련된 다른 방법을 찾을 수 없습니다. 그리고 거기에있을 패널에서 가치를 얻으려고하는 것은 가치를 창출하기 전에 필요하기 때문에 실현 가능하지 않습니다.
누구든지이 값을 어떻게 찾을 수 있습니까? 감사합니다.
사용중인 프레임 워크를 지정하는 것을 잊었습니다. AWT/스윙을 사용하고있는 것처럼 보입니까? – SOFe
@PEMapModder 예, 죄송합니다. 방금 추가했습니다. – nck