私はこの分布にBorderLayout持っている:私はそれがすべてのスペースが利用可能に満たすようにスケーリングされた画像を入れたい赤い位置で レイアウトでスペースを使用するにはどうすればよいですか?
を。また、実際の画像のさまざまなスケール(20%、50%、100%...)で画像を表示するオプションもあります。
//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/swingを使用しているようですか? – SOFe
@PEMapModderはい、申し訳ありません、私はちょうどそれを追加しました。 – nck