JavaFX 2.2.7-b01 でアプリケーションを作成しています。
これが私が現在持っているコードの例です。アプリケーション ウィンドウのサイズを変更できるようにしながら、最初に構成された縦横比を維持するにはどうすればよいですか? つまり、ユーザーがウィンドウのサイズを変更した場合、ウィンドウの幅は常にウィンドウの高さの 2 倍のままにする必要があります。
...
public void showScene(Stage stage, String fxmlPath) {
try {
FXMLLoader loader = new FXMLLoader();
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(fxmlPath);
Parent page;
try (InputStream in = Main.class.getResourceAsStream(fxmlPath)) {
page = (Parent) loader.load(in);
}
Scene scene = new Scene(page, 400, 200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
} catch (Exception ex) {
...
}
}
...
JavaFX では、ユーザーはコンストラクターでシーンの幅と高さを指定できますが、プログラムによるアクセスで幅または高さを更新することはできません。setWidth または setHeight メソッドはありません。プロパティ リスナーを追加して、サイズ変更中にシーンの読み取り専用の幅/高さを取得できることはわかっていますが、シーンの寸法を動的に変更する方法がわからないため、アスペクト比を強制的に維持されます。
Sceneオブジェクトをサブクラス化すれば(そうしなければならない場合)これが可能になると思いますが、これを行う簡単な方法は他にありますか?