我想在执行函数 mediaPlayer() 之前显示文本。在媒体播放器执行期间,我使线程 hibernate 。没关系,因为那时什么都不需要发生(然后只需要听)。
但是,最后一条文本:“Listen to...”并未显示(除了几秒钟的延迟)。有没有办法在线程进入休眠状态之前先刷新 jFrame?
expText.setText("Listen to the song and give a rating when it finishes.");
startButton.setEnabled(false);
//play sound
try {
mediaPlayer();
//wait for the duration of the stimuli
Thread.sleep(stimDuration);
...
最佳答案
在 EDT 渲染另一帧之前,setText 不会显示,但它无法执行此操作,因为它正忙于 hibernate stimDuration
时间。
尝试在单独的线程上播放声音,在其他线程上播放声音,检测声音何时停止,然后在 EDT 上执行另一个操作,将 expText
更改回原始值您拥有的文本。
关于java - sleep 一个java线程但首先更新jFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417646/