java - 堆叠新阶段而不是叠加
问题描述
每当我像这样一次创建多个阶段时
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();
}
}
}
舞台布置在一个位置,因此它们是重叠的。
我的目标是将它们堆叠起来,就像这样的 Windows 警报:
我怎样才能做到这一点?
解决方案
通过使用stage.setX()
and.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); }
}
推荐阅读
- html - 如何在居中 td 中垂直居中对齐我的数字?
- c# - Bot framework V4 向包含大量数据的响应添加“显示更多”按钮的最佳方式是什么
- php - MYSQL innodb 中的死锁问题
- scala - 实木复合地板到 csv 转换后日期发生变化
- canvas - 画布绘制对角 CSS 渐变
- dataframe - KeyError:“[索引(['MW','LogP','NumAromatic','HBD','HBA'],dtype ='object')]中没有[列]”
- xml - 更新 xml 文件的每个部分中的条目
- asp.net-core - 如何将新的 userId roleId 添加到 AspNetUserRoles 表并从 AspNetUserRoles 表中删除一行?
- typescript - 如何将打字稿添加到现有的 vue3 项目?
- c# - C#:通过异构字典公开类型安全 API