这个控制层绘制的逻辑是怎么样的呢?为啥把键盘监听器放在run函数里面(setData后面)还是可以实现?

来源:9-4 为分形绘制添加交互

teethdiao

2020-06-24

按老师的代码,如果执行了一次键盘监听,new Thread的run函数就不执行了吗?

        EventQueue.invokeLater(() -> {
            frame = new AlgoFrame("Fractal Visualizer", sceneWidth,sceneHeight);
            frame.addKeyListener(new AlgoKeyListener());
            new Thread(() -> {
                run();
            }).start();
        });
    }

    private void run(){

        setData(data.depth);
    }

    private void setData(int depth){
        data.depth = depth;

        frame.render(data);
        AlgoVisHelper.pause(DELAY);
    }

我是想问在这串代码中当键盘键入一个数字后
会重新执行new Thread(()->…这部分代码吗?
因为我把run函数改成

 private void run(){

        setData(6);
    }
    

也不影响键盘监听实现

写回答

2回答

liuyubobobo

2020-06-24

不会重新执行 new Thread


每按一个键,只会执行 keyReleased


继续加油!:)





0
1
teethdiao
非常感谢!
2020-06-24
共1条回复

liuyubobobo

2020-06-24

抱歉,我没有理解你的问题。


你的意思是课程现有代码的哪一部分的运行机制不理解?还是你想把代码怎么修改?

0
1
teethdiao
好像回复不了,老师我修改在了问题详情里
2020-06-24
共1条回复

7个经典应用诠释Java算法精髓

课程重应用、重实践、重思维,真正应用于实际工作开发中

1888 学习 · 112 问题

查看课程