我对JavaFX很陌生,目前有以下代码:
public class Main extends Application {
public void start(Stage primaryStage) {
try {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main (String[] args) {
launch(args);
stage.setTitle("Hello world!");
}
}
在main
函数中,我尝试更改舞台的标题。不幸的是,可变范围不允许我这样做。我很好奇如何在运行时更改JavaFX窗口的标题,因为primaryStage
只是一个本地参数。
我尝试过的一件事是创建一个全局Stage
并将其设置为primaryStage
,但是那没用(很明显是肯定的)。在网上进行了几次搜索后,我相信每次我都需要创建一个全新的场景,但是如果可能的话,我希望避免这种情况。
答案 0 :(得分:0)
只需在start
内设置标题:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setTitle("Hello world!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
如果您希望能够动态更改它,请将其存储为字段,或使用Node#getScene()
和Scene#getWindow()
。
注意:
@Override
,它只会有所帮助。try-catch
语句(或对其使用最小的范围)。答案 1 :(得分:-1)
在您的主类中,您可以像这样存储对 function run1(){
var username = $("#username").val();
var password = $("#password").val();
let xmlRequest,obj;
xmlRequest = new XMLHttpRequest();
xmlRequest.onreadystatechange = function(){
if(this.readyState === 4 && this.status === 200){
obj = JSON.parse(this.responseText);
var res = obj[username];
if(res == password){
alert(`Welcome ${username}`);
}
}
}
xmlRequest.open("GET","http://localhost/deneme/info.json",true);
xmlRequest.send();
}
function run(){
var username = $("#username").val();
var password = $("#password").val();
let xmlRequest,obj;
xmlRequest = new XMLHttpRequest();
var url = "http://localhost/deneme/info.json";
xmlRequest.open("POST", url, true);
xmlRequest.onreadystatechange = function(){
if(this.readyState === 4 && this.status === 200){
obj = JSON.parse(this.responseText);
}
}
var data = JSON.stringify({username:password});
xmlRequest.send(data);
}
的引用:
Scene
并访问其保存的public class Main extends Application {
private static Scene mainScene;
public void start(Stage primaryStage) {
try {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
mainScene = scene;
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main (String[] args) {
launch(args);
Stage mainStage = (Stage) mainScene.getWindow();
mainStage.setTitle("Hello world");
}
}
对象。
请注意,Window
是Window
的超类,因此您需要使用强制转换以Stage
的形式访问其属性