java - 如何从 JavaFx 中的任务发送 int?

标签 java multithreading javafx

我正在尝试从 Task 发送 int,但方法 updateMessage 只允许 String。我尝试转换 .toString() 但 IDE 发送错误“无法解析符号”。

有什么办法吗?为什么我不能在 Task 中使用 .toString()

         bkgTimer = new Service<Void>() {
            @Override
            protected Task<Void> createTask() {
                return new Task<Void>() {
                    @Override
                    protected Void call() throws Exception {
                        int count = 0;
                        while (play){
                            count++;
                            updateMessage(count.toString());//Cannot resolve symbol
                            if (isCancelled()) {
                                break;
                            }
                            Thread.sleep(1000);
                        }
                        return null;
                    }
                };
            }
        };

        bkgTimer.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
            @Override
            public void handle(WorkerStateEvent event) {
               chronoLabel.textProperty().unbind();
            }
        });
        chronoLabel.textProperty().bind(bkgTimer.messageProperty());

提前致谢..

最佳答案

编译错误与您位于Task 中这一事实无关。问题是您无法从原始类型(例如 intdoubleboolean 等)调用方法。只能调用引用类型(即对象)有方法,类可以定义静态方法。

因此,请使用静态 toString(int) Integer 类中的方法:

updateMessage(Integer.toString(count));

关于java - 如何从 JavaFx 中的任务发送 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126447/

相关文章:

java - 在 Java 中从 XML 中提取数据

java - return语句后执行的代码

javafx - 在 JavaFX 中显示带有 ProgressBar 的弹出窗口

java - 更新扩展 Task 的类中的文本

java - 将两个 ToggleButtons 绑定(bind)到一个 BooleanProperty

java - 在 Thymeleaf 中使用 instanceof

java - 为什么当 OntClass 创建一个个体时行为不正常?

java - 使用 Java 打印三角形(半金字塔)图案

android - 如何为 AsyncTask 线程集成进度条

multithreading - 交互式线程和非交互式线程有什么区别?不同CPU调度器的性能如何?