JavaFX, размер диалога в реальном gnomeJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JavaFX, размер диалога в реальном gnome

Сообщение Anonymous »

У меня проблема с размером диалогового окна. После окна программы я открываю другие диалоги. Диалоги имеют размер. Это работает с Windows, Linux с KDE и более ранними версиями Gnome (Ubuntu 22.04), но не с самим GNOME (Ubuntu 24.04 или Manjaro). Когда строки комментариев активны, в реальном GNOME это работает лучше, но тоже не всегда. Я пробовал много вещей, но ничего не работает. Есть идеи?
Это пример кода с минимальными деталями, показывающими проблему:
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»