JavaFx首次加载时执行某些操作

时间:2017-01-20 02:00:21

标签: java javafx javafx-8 executable-jar

当用户第一次启动软件时,我想弹出一个窗口来选择文件位置。我是javafx的新手,我在网上寻找答案,但没有成功...... 提前致谢

3 个答案:

答案 0 :(得分:1)

我想我找到了它。

primaryStage.setOnShowing(event -> {
    //Code here
});

它在首次启动时执行操作。我不知道这是否是最佳方式,但我就是这样做的。我已经有一个大约3行的文件。我刚刚添加了第4个随机单词,当用户启动应用程序时,它会检查文件中是否存在该单词。如果是这样,它什么都不做。如果没有,它会要求用户选择文件夹,如果选择成功,则写下单词。

答案 1 :(得分:0)

首先,我想指出,你的措辞可能不够清晰,大多数人都无法准确理解你的需要。我将假设您有一些设置(如默认应用程序存储目录),您需要用户在第一次运行JAR时指定。如果随后运行JAR文件,则不应再次提示该文件并使用先前指定的设置。

通常,当用户运行JAR文件时,所有数据都将在该会话中被隔离。如果用户关闭应用程序并再次打开应用程序,它的行为就像上一次运行一样。

如果您需要保留这些数据或设置,可以使用Properties。这会将数据保存在单独的文件中。通常的惯例是将其保存在与JAR文件相同的文件夹中,并命名为config.properties

在应用程序开始时,您应检查此文件是否存在,如果该文件不存在,则表示这是第一次运行。随后,当用户设置数据(例如文件夹)时,您将其保存到文件中。

您可以找到示例here

答案 2 :(得分:-1)

背景

为了实现文件选择器,我们可以使用 JavaFX FileChooser。这将打开一个窗口,让我们有机会选择一个文件。

您要求的是在进入实际申请之前import os os.system("taskkill /f /im Your_Process_Name.exe") 打开。让我们来看看类似的实现!

实施

首先,我们需要一个 JavaFX FileChooser类,如果我们要从中创建一个新实例,它将打开一个窗口:

Application

我确信你已经知道了 - 像这样的课程会打开一个新的窗口。这是我们使用public class App extends Application { private final File file; public App(File file) { this.file = file; // Optionally provide ‘launch’ with some arguments Application.launch(); } @Override public void start(final Stage stage) { // ... stage.setScene(new Scene(insertNodeHere)); } } 类中的File检索FileChooser后我们将要调用的单独的应用程序类。

在我们的main课程中,我们会说明这一点:

main

如果所选文件未显示为File file = fileChooser.showOpenDialog(stage); if (file != null) new App(file); ,则会启动您的应用程序。

而且

考虑到上面的实现,您可以根据自己的喜好复杂化。也许您希望应用程序启动,即使该文件为空?在这种情况下,不需要null语句。