私は別のJavaFX(モーダル)Stage
を開き、元Stage
として、その所有者を設定する場合は、元のStage
Windowsを使用して、サイズを変更することはできませんが、ウィンドウモーダルJavaFXのステージinitOwnerは、バグをリサイズから所有者を防ぎますか?
の右下隅にウィジェットドラッグIこれが確認されたJavaのバグである...ここ
が
最小限の例ですimport javafx.stage.*;
import javafx.scene.*;
import javafx.event.*;
import javafx.application.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
public class HelloWorld extends Application
{
static Stage newStage;
@Override
public void start(Stage primaryStage)
{
Button btn = new Button();
btn.setText("open window");
btn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
if (newStage==null)
{
Button newBtn = new Button("Close window");
newBtn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
//newStage.hide(); // either or
newStage.close();
}
});
newStage = new Stage();
newStage.initModality(Modality.WINDOW_MODAL);
newStage.initOwner(primaryStage); // BUG doing this, makes main window fixed size
newStage.initStyle(StageStyle.DECORATED);
StackPane newRoot = new StackPane();
newRoot.getChildren().add(newBtn);
Scene newScene = new Scene(newRoot,200,160);
newStage.setScene(newScene);
}
newStage.show();
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
説明のポイントとして、セカンダリウィンドウが閉じた後にメインウィンドウのサイズを変更することはできません。 –
JavaFX8、jdk1.8.0_73、Windows7 - 問題ありません。 – DVarga
jdk18.0_92、Windows 7は、ないバグ –