我在主课上有:
public void start(Stage primaryStage) throws Exception {
Thread timeCheckThread = new Thread() {
@Override
public void run() {
try{
while (!done) {
System.out.println("Running!!");
System.out.println();
currentDate = LocalDate.now();
if (!oldDate.equals(currentDate)) {
index++;
saveData();
System.out.println("Saved!");
}
currentThread().sleep(5000);
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
};
timeCheckThread.start();
stage = primaryStage;
stage.initStyle(StageStyle.TRANSPARENT);
FXMLLoader loader = new FXMLLoader(getClass().getResource("sample.fxml"));
Parent root = (Parent) loader.load();
StackPane stackPane = new StackPane(root);
stackPane.setStyle("-fx-background-color: rgba(0,0,0,0);");
Scene scene = new Scene(stackPane, 312, 212);
scene.setFill(Color.TRANSPARENT);
stage.setScene(scene);
Controller controller = loader.<Controller>getController();
controller.registerStage(stage);
stage.show();
}
//launch 'start'
public static void main(String[] args) {
launch(args);
}
在 Controller 类中:
public void exitButtonClicked() {
Platform.exit();
}
我想将一个 boolean 值从方法 exitButtonClicked
传递到主类,以便我可以结束 while(!done)
的循环。实现这一目标的有效方法是什么?就是,在 main 方法中为 done
提供一个 setter
,并从 Main
类的实例调用该 setter
在 Controller
类中,有一个好的方法吗?
最佳答案
使用 boolean 值创建最终类或接口(interface)。在您需要的任何地方设置/获取此 boolean 值。
public final class foo {
public static boolean flag = false;
}
在您的 Controller 类中:
foo.flag = true;
在你的主类中:
while(!foo.flag) {
/* Do Something */
}
关于java - 在JAVA中,将值从其他类传递到主类的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063853/