У меня есть проблема с размером диалога. После программы-ввода я открываю еще один диалог. Диалоги имеет размер. Это работает с Windows, Linux с KDE и более старым GNOME (Ubuntu 22.04), но не с фактическим гномом (Ubuntu 24.04 или Manjaro). Когда строки комментариев активны, он работает лучше в реальном гноме, но и не всегда. У меня есть много вещей, но ничего не работает. Есть идея?public class Muster extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void init() throws Exception {
}
@Override
public void start(Stage primaryStage) {
show(primaryStage, null, "Dialog 1", false, 500, 500);
show(null, primaryStage, "Dialog 2", false, 400, 400);
show(null, primaryStage, "Dialog 3", false, 400, 400);
}
private static void show(Stage primaryStage, Stage owner, String title, boolean wait, int pos, int size) {
VBox vBox = new VBox();
Label lbl = new Label("Das ist ein Dialog");
Button btn = new Button("Dialog");
btn.setOnAction(a -> show(null, owner, "Wieder einer", true, 600, 600));
vBox.getChildren().add(lbl);
vBox.getChildren().add(btn);
vBox.setAlignment(Pos.CENTER);
try {
Stage stage = primaryStage == null ? new Stage() : primaryStage;
Scene scene = new Scene(vBox, size, size);
stage.setScene(scene);
stage.setTitle(title);
if (owner != null) {
stage.initOwner(owner);
}
stage.setWidth(size);
stage.setHeight(size);
stage.setX(pos);
stage.setY(pos);
// stage.setOnShowing(e -> {
// stage.setWidth(size);
// stage.setHeight(size);
// stage.setX(pos);
// stage.setY(pos);
// });
// stage.setOnShown(e -> {
// stage.setWidth(size);
// stage.setHeight(size);
// stage.setX(pos);
// stage.setY(pos);
// });
stage.setOnCloseRequest(e -> {
System.out.println("closing width: " + stage.getWidth());
System.out.println("closing height: " + stage.getHeight());
System.out.println("closing X: " + stage.getX());
System.out.println("closing Y: " + stage.getY());
});
stage.requestFocus();
stage.toFront();
if (wait) {
stage.showAndWait();
} else {
stage.show();
}
} catch (final Exception exc) {
System.out.println(exc.getMessage());
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... tual-gnome