JPanel内に配置した画像を中央に配置しようとしています。swingでは、paintComponent()内のJPanelのWidthプロパティとHeightプロパティを見つけることはできますか?
int x = (this.getWidth() - pic.getWidth(null))/2;
int y = (this.getHeight() - pic.getHeight(null))/2;
g2.drawImage(pic, x, y, null);
しかし、画像がまだ揃っCENTERされていません。私のpaintComponentでは()、私はこれらの行を持っています。私はthis.getWidth()とthis.getHeight()を出力しました。これはJPanelではなく、画像そのものの次元を与えてくれます。
理想的なソリューションは次のようになります。これらのプロパティは、別のクラスにあるので、私はJPanelのの幅と高さへのアクセスを持っていない
int x = (JPANEL.GETWIDTH() - pic.getWidth(null))/2;
int y = (JPANEL.GETHEIGHT() - pic.getHeight(null))/2;
g2.drawImage(pic, x, y, null);
しかし、私の問題を。
JPanelの幅と高さを保存して設定したインスタンス変数を作成しようとしました。しかし、ウィンドウのサイズを変更すると、JPanelの元の幅と高さが使用されます。ウィンドウのサイズを変更するときに、新しいJPanelのサイズに合わせてコードを更新する方法がわかりません。何か案は?
私の出力は以下です:のJPanelの600、実際の幅:これを使用して702 高さ:400、のJPanelの実際の高さ:その場合は540 – dan139
IもJPanelのに好適なサイズと最小サイズを設定し、これを用いて 幅何かに影響します。 – dan139
これらのコメントは質問に編集する必要があります。質問タグの下にある 'edit'リンクを探します。 –