每次我像这样一次创建多个阶段
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警报一样堆叠:
我该如何实现?
答案 0 :(得分:2)
通过使用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); }
}