[英]JavaFX crashes when resizing the Window on Mac
我正在使用帶有最新版本 Java (FX)、macOS 以及 IntelliJ IDEA CE 的 Mac。 問題是,當我調整 JavaFX Window 的大小時,我的 Mac 立即崩潰。 只有當我按下電源按鈕五秒鍾時,MacBook 才會重新啟動。 我用這些自動創建的文件創建了一個普通的 IntelliJ JavaFX 項目:
我沒有改變任何東西並啟動了程序。 一切正常,直到您嘗試調整 window 的大小,Mac 崩潰,您無法移動 courser 或其他任何東西。
HelloApplication.java:
package com.example.demo;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
您好 Controller.java:
package com.example.demo;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class HelloController {
@FXML
private Label welcomeText;
@FXML
protected void onHelloButtonClick() {
welcomeText.setText("Welcome to JavaFX Application!");
}
}
你好-view.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
<bottom>
<Button mnemonicParsing="false" text="Button" BorderPane.alignment="CENTER" />
</bottom>
</BorderPane>
我對邊框窗格(使用 Scene Builder 編輯)有同樣的問題。
有人有同樣的問題,或者知道解決這個問題的方法嗎?
我剛剛在我的 Mac (macOS Catalina 10.15.7) 上運行了您的示例程序。 我可以毫無問題地讓它變大變小。 我的 Java 配置是:
java.vm.name: OpenJDK 64-Bit Server VM
java.runtime.version: 18-ea+29-2007
javafx.runtime.version: 18-ea+8
也許您應該將此初始化塊添加到您的代碼中,以確保您在運行時確實使用了您認為正在使用的版本。
@Override
public void init() {
System.out.format("java.vm.name: %s\n", System.getProperty("java.vm.name", "(undefined)"));
System.out.format("java.runtime.version: %s\n", System.getProperty("java.runtime.version", "(undefined)"));
System.out.format("javafx.runtime.version: %s\n", System.getProperty("javafx.runtime.version", "(undefined)"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.