我有一个问题: 我有一个简单的Java FX应用程序,我有一个按钮,当我点击按钮时,线程任务开始,每秒都要更改一个标签:
MyController.java
For Each Rng2 In WorkRng2
If Rng2.Value = 0 Or Rng2.Value = "" Or Rng2.Offset(0, 3).Value = "Define" Or Sum(Rng2.EntireRow) = Rng2.Value Then
Rng2.Value = Rng2.Offset(-1, 0).Value
End If
Next
Main.java是标准的
CheckSystemTime.java
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeUnit.*;
import java.util.*;
import java.text.DateFormat;
public class MyController implements Initializable{
@FXML
private Button myButton;
@FXML
private TextField myCountry;
@FXML
public Label myTime;
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
}
public void startTimeThread(ActionEvent event) {
ScheduledThreadPoolExecutor eventPool = new ScheduledThreadPoolExecutor(3);
eventPool.scheduleAtFixedRate
(new CheckSystemTime(), 0, 2, TimeUnit.SECONDS);
myButton.setDisable(true);
}
public void setLabel(String text) {
myTime.setText(text);
}
}
所以我的问题是,我如何能够从CheckSystemTime类访问setLabel方法? 我希望你能帮助我如何解决这个问题
答案 0 :(得分:1)
将MyController
或Label
或textProperty
的{{1}}添加到Label
的构造函数中。然后,您可以在CheckSystemTime
内保留本地参考。然后,您可以在run方法中访问它。但请确保在CheckSystemTime
内包含每个与UI相关的调用。