我正在开发一个javafx应用程序。扩展Application接口的我的应用程序类GUI包含系统的所有变量和游戏的构造函数,它实际上包含接口与我的数据库的连接。
public class GUI extends Application {
... \\system variables
public GUI(String args[]) throws SQLException, InterruptedException {
...
connectionQuestions = questionssqliteConnection.dbConnector();
connectionUsers = userssqliteConnection.UdbConnector();
}
}
我想知道是否有可能在GUI调用的构造函数内部解析系统参数。我试图添加它们,但我遇到了几个错误:
Application构造函数中的异常 java.lang.reflect.InvocationTargetException 运行应用程序GUI的异常
有没有办法将它们传递给我的系统?
答案 0 :(得分:1)
所有这些都包含在documentation。
中首先请注意,您的Application
子类必须具有无参数构造函数,并且FX Application工具包会调用该构造函数来创建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) {
// ...
}
}