2016-10-08 19 views
0

私はpaintComponentメソッドを使って画像を描画する方法を知っていますが、問題があります: フレームのサイズを変更すると画像は同じサイズになりますが、フレームのサイズを大きくするとサイズが大きくなり、フレームのサイズを小さくするとサイズが小さくなります。パネルに相対的なサイズの画像を描画する

マイコード:

@Override 
public void paintComponent(Graphics graphics) { 
    Graphics2D g = (Graphics2D) graphics; 
    g.drawImage(myImage, x, y, myWidth, myHeight, null); 

} 

私はJPanelのクラスののgetWidthとのgetHeightメソッドを使用する必要があることを確信しているが、私は私が行う必要が数学を知りません。

誰かが私を助けてくれることを願っています!

PS:私の悪い英語のため申し訳ありませんが...その代わりpaintComponentsでこのコードを書くの

+0

画像の相対的な大きさ(フレーム幅の80%など)をどれくらいにするかを選択する必要があります([scale it](http://stackoverflow.com/questions/1729887/little-math-help -for-image-resize-needed)。 – BackSlash

+0

JPanelのgetPreferredSizeをオーバーライドし、SSCCE/MCVEフォームの – mKorbel

+1

に例を示します。「JPanelクラスのgetWidthメソッドとgetHeightメソッドを使用する必要があると確信しています。これらのメソッドを使用するようにコードを変更してください。また、drawImage(...)メソッドの最後のパラメーターに "null"の代わりに "this"を使用する必要があります。 – camickr

答えて

0

、あなたはJFrameののオーバーライドされた塗装方法に置くことができます。

このようにしてウィンドウのサイズを変更すると、paintメソッドが呼び出され、イメージのサイズが変更されます。

関連する問題