Стек новые этапы вместо наложения - PullRequest
2 голосов
/ 07 марта 2019

Всякий раз, когда я создаю несколько Стадий одновременно, как это

for (Object o : tableView.getSelectionModel().getSelectedItems())
{
    if (o != null)
    {
        try
        {
            FXMLLoader  fxmlLoader  = new FXMLLoader(getClass().getResource("/gui/fxml/Stage.fxml"));
            Parent      root1;

            root1 = (Parent) fxmlLoader.load();

            Stage stage = new Stage();
            stage.initStyle(StageStyle.DECORATED);
            stage.setScene(new Scene(root1));
            stage.show();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

Этапы располагаются на одной позиции, поэтому они перекрывают друг друга.

Скриншот наложенных этапов: Screenshot of overlaying stages

Моя цель - сделать их похожими на предупреждения Windows, например:

Сложенные этапы: Stacked stages

Как мне этого добиться?

1 Ответ

2 голосов
/ 07 марта 2019

Используя stage.setX() и .setY(), вы легко достигнете этого, если будете продолжать последовательно увеличивать значения x и y, например

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        int x = 400;
        int y = 400;
        for (int i = 0; i < 5; i++) {
            VBox vBox = new VBox();
            vBox.setAlignment(Pos.CENTER);
            vBox.getChildren().addAll(new Label("ALERT!!! ALERT!!!"), new Label("Label #:"+i));

            Stage stage  = new Stage();
            stage.setX(x);
            stage.setY(y);
            stage.setScene(new Scene(vBox));
            stage.show();

            x+=20;
            y+=20;
        }
    }
    public static void main(String[] args) { launch(args); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...