Swing/ConstrainedProportions のバックアップの現在との差分(No.4)
TITLE:JFrameの縦横比を一定にする
Posted by aterai at 2006-11-06
JFrameの縦横比を一定にする
JFrameの幅と高さの比率が一定になるように制限します。- category: swing folder: ConstrainedProportions title: JFrameの縦横比を一定にする tags: [JFrame] author: aterai pubdate: 2006-11-06T14:28:33+09:00 description: JFrameの幅と高さの比率が一定になるように制限します。 image:
概要
JFrame
の幅と高さの比率が一定になるように制限します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
サンプルコード
サンプルコード
#spandel
final int mw = 320;
#spanend
#spandel
final int mh = 200;
#spanend
#spanadd
private static final int MW = 320;
#spanend
#spanadd
private static final int MH = 200;
#spanend
#spanadd
// ...
#spanend
frame.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
@Override public void componentResized(ComponentEvent e) {
int fw = frame.getSize().width;
int fh = mh*fw/mw;
frame.setSize((mw>fw)?mw:fw, (mh>fh)?mh:fh);
int fh = MH * fw / MW;
frame.setSize(MW > fw ? MW : fw, MH > fh ? MH : fh);
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JFrameのサイズを変更した後、その幅から縦横比が同じになるような高さを計算して、JFrame#setSize(int,int)でサイズを設定し直しています。解説
上記のサンプルでは、JFrame
のサイズを変更した後その幅から縦横比が変更前と同じになるような高さを計算してJFrame#setSize(int,int)
で設定し直しています。
参考リンク
- JFrameの最小サイズ
- DynamicLayoutでレイアウトの動的評価
-
Windows 10
+Java 8
以降では正常に動作しない
コメント
参考リンク
コメント
- これはドラッグ中は自由なサイズでボタンを離したときにサイズが正しく変更されます。ドラッグ中も正しい比率になるのは無理でしょうか? --
- ども。今のJavaだけだと難しいかもしれません。すこし調べてみます。 -- aterai
- ども。今の
Java
だけだと難しいかもしれません。すこし調べてみます。 -- aterai