2 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
JavaFx 被移除到 JDK> = 11 中,現(xiàn)在是一個(gè)單獨(dú)的項(xiàng)目 opensurse [openjfx] ( https://openjfx.io/ )。現(xiàn)在創(chuàng)建一個(gè)可在任何地方運(yùn)行的應(yīng)用程序 javafx 版本變得更加困難,但它是一個(gè)不斷發(fā)展的過(guò)程,我認(rèn)為這是很好的文檔 [doc-image-live] ( https://openjfx.io/ openjfx-docs/#modular)。
我在開發(fā) JDK 1.8 時(shí)遇到了類似的問(wèn)題,但在我的版本 java 系統(tǒng)中是 openjdk11,我認(rèn)為這是相同的情況。
您的示例是錯(cuò)誤的,因?yàn)樗皇?JavaFX 應(yīng)用程序。JavaFX 應(yīng)用程序必須擴(kuò)展javafx.application.Application并在主調(diào)用方法launch ,該方法將調(diào)用從 Application 繼承的方法start 。
這是 Oracle 的一個(gè)簡(jiǎn)單示例
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
ps:說(shuō)javafx的時(shí)候一定要加上java版本,因?yàn)槲覀儾恢滥愕膉ava版本

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果您不想使用 JavaFX,另一種方法是使用源自 JavaZOOM 的庫(kù)來(lái)完成讀取 mp3 文件的任務(wù)。我在 github 上看到許多源自此來(lái)源的產(chǎn)品,例如https://github.com/goxr3plus/java-sound-libraries但我自己并沒(méi)有使用過(guò)這個(gè)特定的庫(kù)。
我的偏好是將用于 GUI 的 JavaFX 與 javax.audio.sampled 以及我構(gòu)建的依賴于 java.sound.sampled.SourceDataLine 輸出的庫(kù)相結(jié)合。但我從來(lái)沒(méi)有費(fèi)心去實(shí)施閱讀 mp3。在使用壓縮音頻資源時(shí),我傾向于采用 ogg/vorbis 路線。
添加回答
舉報(bào)