JavaFx 在第一次加载时做一些事情
JavaFx Do something on first load
我想在用户第一次启动软件时弹出一个window到select的文件位置。我是 javafx 的新手,我在网上寻找答案但没有成功......
提前致谢
我想我找到了。
primaryStage.setOnShowing(event -> {
//Code here
});
它在第一次启动时执行操作。我不知道这是否是最好的方法,但我就是这样做的。我已经有一个大约 3 行的文件。我刚刚添加了一个带有随机词的第 4 个,当用户启动应用程序时,它会检查文件中是否存在该词。如果是这样,它什么都不做。如果没有,它会要求用户 select 文件夹,如果 selection 成功,它会写下这个词。
背景
为了实现一个文件select或者,我们可以利用JavaFX的FileChooser
。这将打开一个 window 让我们有机会 select 一个文件。
您要求的是 FileChooser
在进入实际应用程序之前打开。让我们来看看类似的实现!
实施
首先,我们需要一个 JavaFX Application
class 如果我们要创建,它将打开一个 window一个新实例:
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));
}
}
我相信你已经知道了——像这样的 class 会打开一个新的 window。这是我们在 main
class.[=22= 中使用 FileChooser
检索到 File
后调用的单独应用程序 class ]
在我们的 main
class 中,我们将把这个:
File file = fileChooser.showOpenDialog(stage);
if (file != null)
new App(file);
如果 selected 文件不是 null
,这将启动您的应用程序。
此外
考虑到上面的实现,您可以根据需要将事情复杂化。也许您希望应用程序在文件为空的情况下也能启动?在这种情况下,不需要 if
语句。
首先,我想指出您的措辞可能不够清晰,大多数人无法准确理解您的需求。我将假设您有某种设置(如默认应用程序存储目录),您需要用户在第一次 JAR 为 运行 时指定这些设置。如果 JAR 文件随后是 运行,则不应再次提示并使用先前指定的设置。
通常,当用户 运行 访问 JAR 文件时,所有数据都将在该会话中隔离。如果用户关闭应用程序并再次打开应用程序,它的行为就像之前的 运行.
如果您需要保留这些数据或设置,您可以使用Properties
。这会将数据保存在单独的文件中。通常的约定是将其保存在与 JAR 文件相同的文件夹中,并命名为 config.properties
.
在启动应用程序时,应检查此文件是否存在,如果不存在,则表示这是第一个运行。随后,当用户设置数据(例如文件夹)时,您将其保存到文件中。
你可以找到一个例子here。
我想在用户第一次启动软件时弹出一个window到select的文件位置。我是 javafx 的新手,我在网上寻找答案但没有成功...... 提前致谢
我想我找到了。
primaryStage.setOnShowing(event -> {
//Code here
});
它在第一次启动时执行操作。我不知道这是否是最好的方法,但我就是这样做的。我已经有一个大约 3 行的文件。我刚刚添加了一个带有随机词的第 4 个,当用户启动应用程序时,它会检查文件中是否存在该词。如果是这样,它什么都不做。如果没有,它会要求用户 select 文件夹,如果 selection 成功,它会写下这个词。
背景
为了实现一个文件select或者,我们可以利用JavaFX的FileChooser
。这将打开一个 window 让我们有机会 select 一个文件。
您要求的是 FileChooser
在进入实际应用程序之前打开。让我们来看看类似的实现!
实施
首先,我们需要一个 JavaFX Application
class 如果我们要创建,它将打开一个 window一个新实例:
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));
}
}
我相信你已经知道了——像这样的 class 会打开一个新的 window。这是我们在 main
class.[=22= 中使用 FileChooser
检索到 File
后调用的单独应用程序 class ]
在我们的 main
class 中,我们将把这个:
File file = fileChooser.showOpenDialog(stage);
if (file != null)
new App(file);
如果 selected 文件不是 null
,这将启动您的应用程序。
此外
考虑到上面的实现,您可以根据需要将事情复杂化。也许您希望应用程序在文件为空的情况下也能启动?在这种情况下,不需要 if
语句。
首先,我想指出您的措辞可能不够清晰,大多数人无法准确理解您的需求。我将假设您有某种设置(如默认应用程序存储目录),您需要用户在第一次 JAR 为 运行 时指定这些设置。如果 JAR 文件随后是 运行,则不应再次提示并使用先前指定的设置。
通常,当用户 运行 访问 JAR 文件时,所有数据都将在该会话中隔离。如果用户关闭应用程序并再次打开应用程序,它的行为就像之前的 运行.
如果您需要保留这些数据或设置,您可以使用Properties
。这会将数据保存在单独的文件中。通常的约定是将其保存在与 JAR 文件相同的文件夹中,并命名为 config.properties
.
在启动应用程序时,应检查此文件是否存在,如果不存在,则表示这是第一个运行。随后,当用户设置数据(例如文件夹)时,您将其保存到文件中。
你可以找到一个例子here。