【问题标题】:javafx fxml bring window to front form itselfjavafx fxml 将窗口带到前面表单本身
【发布时间】:2015-04-09 07:06:35
【问题描述】:

我需要将 JavaFX FXML 窗口从自身带到前面。像这样的:

procedure (boolean close)
{
   if(close)
     current_window.toFront();
}

我应该如何获得这个窗口(场景)?

【问题讨论】:

  • 如果你的 current_window 扩展了舞台,那么只需调用toFront();
  • ((Stage)root.getScene().getWindow()).toFront() - 提供者错误 java.lang.NullPointerException

标签: javafx fxml scene


【解决方案1】:

试试这个

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Main extends Application {

@Override
public void start(Stage stage) {
    Text text = new Text("!");
    text.setFont(new Font(40));
    VBox box = new VBox();
    box.getChildren().add(text);
    final Scene scene = new Scene(box,300, 250);
    scene.setFill(null);
    stage.setScene(scene);
    stage.show();
    stage.toFront();
}

public static void main(String[] args) {
    launch(args);
}
}

【讨论】:

  • 不是从 start() 开始的。这个例子展示了如何操作另一个(子)场景。我只需要场景自己操作。
  • 你为什么不使用一些StackPane 它将所有场景一个接一个地放在一起,并且可以用于类似上面的东西。继续尝试 :) 我不确定这会有多大帮助 [link] blogs.oracle.com/acaicedo/entry/…
【解决方案2】:

如果您可以访问任何节点,则可以使用以下内容

((Stage)node.getScene().getWindow()).toFront();

【讨论】:

  • 请解释一下什么是节点?
  • Node 是场景图上的所有内容。它可能是Button 之类的控件或HBox 之类的布局。
  • 您可能想在您的问题中添加MCVE,以便我们更好地帮助您。
猜你喜欢
  • 2013-04-27
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多