2017-01-18 36 views
0

我正在開發一個javafx應用程序。我的擴展應用程序接口的應用程序類GUI包含系統的所有變量和遊戲構造器,它實際上包含了接口與我的數據庫的連接。解析javafx類的系統參數

public class GUI extends Application { 
    ... \\system variables 
    public GUI(String args[]) throws SQLException, InterruptedException { 
     ... 
     connectionQuestions = questionssqliteConnection.dbConnector(); 
     connectionUsers = userssqliteConnection.UdbConnector(); 
    } 
} 

我想知道是否有的GUI調用,系統參數的構造函數中解析的可能性。我嘗試添加他們,我得到了幾個錯誤:

異常在應用程序構造 java.lang.reflect.InvocationTargetException 異常運行的應用程序的GUI

有沒有辦法將它們傳遞給我的系統?

回答

1

所有這些都覆蓋在documentation

首先要注意你的Application子類必須有一個無參數的構造函數,並構造是由FX應用工具包調用,以在其上start(...)(和init()等方法)被稱爲實例。這就是爲什麼當你嘗試使用一個參數爲String[]的構造函數時你會得到異常。

命令行參數已經傳遞給您的應用程序實例,可通過調用getParameters()。所以你可以做

public class GUI extends Application { 

    // ... system variables 

    public init() throws SQLException, InterruptedException { 

     // ... 

     List<String> args = getParameters().getRaw(); 

     // process parameters... 

     connectionQuestions = questionssqliteConnection.dbConnector(); 
     connectionUsers = userssqliteConnection.UdbConnector(); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
     // ... 
    } 
}