使用javafx达到特定条件时如何将ProgressIndicator更改为图标
How to change ProgressIndicator to an icon when reaching a certain condition with javafx
我有一个单独的 class 可以为我的 GUI 初始化一堆进度指示器
public class ProgressIndicators {
private ProgressIndicator firstIndicator;
private ProgressIndicator secondIndicator;
private ProgressIndicator thirdIndicator;
public void initalizeIndicators() {
//Initialize indicators and set properties
}
}
我有另一个 class 在另一个 class
中执行一些繁重的后端计算
public class HeavyCalculations {
private boolean isFinished;
public HeavyCalculations() {
isFinished = false;
doHeavyCalculations()
}
public doHeavyCalculations() {
// Do Heavy Calculations that may take up to ten minutes
isFinished = true; // Set isFinished to true once heavy calculations are done
}
}
一旦 isFinished
变量设置为 true,我想删除其中一个 ProgressIndicator
并将其更改为另一个图标。我将如何着手完成这个?
嗯,你知道,如果它到达那条线就完成了,所以你在控制之中,不需要共享任何标志。
public doHeavyCalculations() {
isFinished = true;
removeProgressIndicator();
}
只需在 removeProgressIndicator()
方法中实现您需要的逻辑,以便了解您要删除哪个 ProgressIndicator
以及如何删除它。
如果 HeavyCalculations
class 拥有 ProgressIndicators
的一个实例,它可以在那个 class 中实现。或者不需要实例,通过调用静态方法。
例如,使用实例并使用 int id 参数:
public doHeavyCalculations() {
isFinished = true;
indicatorInstance.removeProgressIndicator(1);
}
.
public class ProgressIndicators {
private ProgressIndicator firstIndicator;
private ProgressIndicator secondIndicator;
private ProgressIndicator thirdIndicator;
public void removeProgressIndicator(int id) {
//remove logic
}
}
我建议将 Indicators
存储在列表中,这样您就可以轻松 retrieve/add/remove 它们。
我有一个单独的 class 可以为我的 GUI 初始化一堆进度指示器
public class ProgressIndicators {
private ProgressIndicator firstIndicator;
private ProgressIndicator secondIndicator;
private ProgressIndicator thirdIndicator;
public void initalizeIndicators() {
//Initialize indicators and set properties
}
}
我有另一个 class 在另一个 class
中执行一些繁重的后端计算public class HeavyCalculations {
private boolean isFinished;
public HeavyCalculations() {
isFinished = false;
doHeavyCalculations()
}
public doHeavyCalculations() {
// Do Heavy Calculations that may take up to ten minutes
isFinished = true; // Set isFinished to true once heavy calculations are done
}
}
一旦 isFinished
变量设置为 true,我想删除其中一个 ProgressIndicator
并将其更改为另一个图标。我将如何着手完成这个?
嗯,你知道,如果它到达那条线就完成了,所以你在控制之中,不需要共享任何标志。
public doHeavyCalculations() {
isFinished = true;
removeProgressIndicator();
}
只需在 removeProgressIndicator()
方法中实现您需要的逻辑,以便了解您要删除哪个 ProgressIndicator
以及如何删除它。
如果 HeavyCalculations
class 拥有 ProgressIndicators
的一个实例,它可以在那个 class 中实现。或者不需要实例,通过调用静态方法。
例如,使用实例并使用 int id 参数:
public doHeavyCalculations() {
isFinished = true;
indicatorInstance.removeProgressIndicator(1);
}
.
public class ProgressIndicators {
private ProgressIndicator firstIndicator;
private ProgressIndicator secondIndicator;
private ProgressIndicator thirdIndicator;
public void removeProgressIndicator(int id) {
//remove logic
}
}
我建议将 Indicators
存储在列表中,这样您就可以轻松 retrieve/add/remove 它们。