第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JavaFX 時應(yīng)用程序構(gòu)造函數(shù)中的異常

使用 JavaFX 時應(yīng)用程序構(gòu)造函數(shù)中的異常

搖曳的薔薇 2022-05-21 17:04:03
我最近開始學(xué)習(xí) JavaFX,并從一本使用 JDK 9 的書中獲得了這段代碼。當(dāng)我運行該程序時,我遇到了錯誤。我查看了其他代碼并嘗試在啟動方法中添加“@Override”和“拋出異?!?,但是我得到了同樣的錯誤。構(gòu)建程序時我沒有收到任何錯誤。如果有幫助:我正在使用 JDK 11.0.2 和來自 openjfx.io 的 JavaFX。import javafx.application.*;import javafx.scene.*;importjavafx.stage.*;import javafx.scene.layout.*;class JavaFXSkel extends Application{public static void main(String[] args){    System.out.println("Launching JavaFX Application");    launch(args);}public void init(){    System.out.println("Inside the init() method");}public void start(Stage myStage){    System.out.println("Inside the start() method");    myStage.setTitle("JavaFX Skeleton");    //makes a root node with a flow layout pane    FlowPane rootNode = new FlowPane();    //Crate a scne    Scene myScene = new Scene(rootNode, 300, 200);    //Set teh scene on stage    myStage.setScene(myScene);    //Show the stage and the scene    myStage.show();}public void stop(){    System.out.println("Inside the stop() method");}}錯誤信息:Exception in Application constructorException in thread "main" java.lang.reflect.InvocationTargetExceptionat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)Caused by: java.lang.RuntimeException: Unable to construct Application instance: class JavaFXSkelat javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:890)at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

您的JavaFXSkel班級必須是public,如以下文檔中所述Application

Application子類必須聲明為公共的,并且必須有一個公共的無參數(shù)構(gòu)造函數(shù)。

ApplicationJavaFX 運行時使用反射實例化您的子類的一個實例。它通過使用類的公共無參數(shù)構(gòu)造函數(shù)來做到這一點。但是,您的JavaFXSkel類沒有顯式聲明任何構(gòu)造函數(shù),這意味著它具有隱式默認構(gòu)造函數(shù)。默認構(gòu)造函數(shù)具有與封閉類相同的訪問修飾符,在您的情況下,這是默認的包訪問。Java 語言規(guī)范1的§8.8.9中提到了這一點:

如果類不包含構(gòu)造函數(shù)聲明,則隱式聲明默認構(gòu)造函數(shù)。頂級類、成員類或本地類的默認構(gòu)造函數(shù)形式如下:

  • 默認構(gòu)造函數(shù)與類具有相同的訪問修飾符,除非該類缺少訪問修飾符,在這種情況下,默認構(gòu)造函數(shù)具有包訪問權(quán)限(第 6.6 節(jié))。

  • 默認構(gòu)造函數(shù)沒有形式參數(shù),除非在非private內(nèi)部成員類中,默認構(gòu)造函數(shù)隱式聲明一個形式參數(shù),表示該類的直接封閉實例(§8.8.1、§15.9.2、§15.9.3) .

這意味著您JavaFXSkel沒有公共的無參數(shù)構(gòu)造函數(shù),因此NoSuchMethodException.


1. 不要指望初學(xué)者讀過很多 JLS(如果有的話);我只是提供它作為官方參考。


查看完整回答
反對 回復(fù) 2022-05-21
?
Cats萌萌

TA貢獻1805條經(jīng)驗 獲得超9個贊

在 Windows 10 上使用 JDK 11.0.2 工具為我工作。對源代碼進行了一項更改:

public class JavaFXSkel

將您的代碼保存在名為“JavaFXSkel.java”的文件中

使用以下命令編譯代碼。

javac --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules=javafx.controls -g JavaFXSkel.java

使用以下命令運行程序:

java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules=javafx.controls JavaFXSkel

這個網(wǎng)頁有幫助:https ://openjfx.io/openjfx-docs/

這是正在運行的應(yīng)用程序的屏幕截圖。

http://img1.sycdn.imooc.com//6288ab2f0001e2d802980227.jpg

查看完整回答
反對 回復(fù) 2022-05-21
  • 2 回答
  • 0 關(guān)注
  • 436 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號