0

我正在寻找一个如何处理 javafx 中的空闲时间的示例,并在 javafx 中找到了这个完美的答案空闲时间。但是我如何在我的 Controller 类中添加它,因为我在 Fxml 类上创建了所有内容并调用它:

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml"));

所以我的问题是如何让它与注册空闲监视器一起工作以及我如何创建空闲监视器

public class LoginController {

static final Logger logger = Logger.getLogger(Controller.class.getName());

@FXML
private ResourceBundle resources;

@FXML
private URL location;

@FXML
private AnchorPane anch;

@FXML
private TextField machineNumberField;

@FXML
private Label label;

private Label labelwrong = new Label();

private static Integer machineNumber;

public static Integer getMachineNumber() {
    return machineNumber;
}

public static void setMachineNumber(Integer machineNumber) {
    LoginController.machineNumber = machineNumber;
}

@FXML
void initialize() {}

@FXML
void onEnterMachineNumber(ActionEvent event) throws IOException {
    PlatformHelper platformHelper = new PlatformHelper();
    String machineNumber = machineNumberField.getText();

    if (!machineNumber.isEmpty() && machineNumber.contains("$")) {
        DbConnection dbConnection = new DbConnection();
        try {
            dbConnection.Connect();
            FileReaderWriter fileReaderWriter = new FileReaderWriter("thread");
            if(fileReaderWriter.isCacheFileNotEmpty()) {
                fileReaderWriter.copyCacheFile();
                fileReaderWriter.flushStorageFile(null);
                fileReaderWriter.start();
            }
        } catch (SQLException e) {
            logger.error("SQL Exception " + machineNumberField.getText() + "\n" + e.getMessage());
        }
        try {
            String machinenr = machineNumber.split("\\$")[1];
            setMachineNumber(Integer.parseInt(machinenr));
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml"));
            Parent root = fxmlLoader.load();
            Controller controller = fxmlLoader.getController();
            controller.setMachineNumber(getMachineNumber());

            anch.getChildren().clear();
            anch.getChildren().add(root);
        } catch (NumberFormatException e) {
            platformHelper.displayWarning(anch, labelwrong, "wrong Barcode");
            machineNumberField.clear();
            logger.info("Wrong Barcode format exception " + machineNumberField.getText() + "\n" + e.getMessage());
        }

    } else {
        platformHelper.displayWarning(anch, labelwrong, "wrong Barcode");
        machineNumberField.clear();
        logger.info("Wrong Barcode format exception " + machineNumberField.getText());
    }


}}

编辑:

主.java

public class Main extends Application {

Scene loginScene;

@Override
public void start(Stage primaryStage) throws Exception {
    StackPane root = new StackPane();

    Parent login = FXMLLoader.load(getClass().getResource("/login.fxml"));
    primaryStage.setTitle("Timer for process time");

    loginScene = new Scene(login);
    primaryStage.setScene(loginScene);
    primaryStage.setFullScreen(true);
    primaryStage.show();



    setUserAgentStylesheet(STYLESHEET_MODENA);


    new FileReaderWriter("setPath").setPathandCacheFile();
}


public static void main(String[] args) {
    launch(args);
}

}

4

0 回答 0