使用单独的线程

时间:2017-11-20 00:43:23

标签: java multithreading javafx binding listener

我一直在尝试使用javafx +线程的老虎机。 我的Reelextends Thread。这是卷轴类的运行方法。它基本上旋转直到用户点击真实。卷轴类具有activeImage(对象属性)

    @Override
public void run() {
    spinning = true;
    spin();
}


public void spin() {
    while (spinning) {
        for (Symbol symbol : symbolList) {
            System.out.println("Running");


            activeImage.set(symbol.getImage());

            try {
                Thread.sleep(1000); // or whatever
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

我已经在GUI类中实现了一个Listner。

      slotMachineHandler.getSlotMachine().getReelList().get(0).activeImageProperty().addListener(new ChangeListener<Image>() {
        @Override
        public void changed(ObservableValue<? extends Image> observable, Image oldValue, Image newValue) {
            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    activeImg1.setImage(slotMachineHandler.getSlotMachine().getReelList().get(0).getActiveImage());
                }
            });

        }
    });

但我的问题是当我用不同的线程启动卷轴时,没有调用监听器。但是当我尝试使用主线程设置活动图像时,侦听器会被完美地调用。我也用过绑定。结果相同。如果有人能给我一些亮光,那真是太好了;)

0 个答案:

没有答案