gpt4 book ai didi

java - 重绘 GUI 之前的 Thread.Sleep

转载 作者:行者123 更新时间:2023-12-01 09:18:43 25 4
gpt4 key购买 nike

我认为这对我来说会简单得多,但我缺少这个概念。简而言之,我创建了一种淡出音频的方法,并使用 Thread.Sleep 使其在 for 循环中“等待”。在调用该方法之前,我将几个标签和文本字段设置为不可见,但它们会等到线程 sleep 后才会更改。我尝试将标签包装在 do-while 循环中以强制它们,甚至尝试在其后调用重绘,但它没有解决任何问题。任何建议将不胜感激:

编辑以包含 ActionPerformed:

            public void actionPerformed(ActionEvent e)
{
if(e.getSource() == quit)
{
System.exit(0);
}
else if(e.getSource() == play)
{
System.out.println("PLAY");
quit.setVisible(false);
quit.setEnabled(false);
play.setVisible(false);
play.setEnabled(false);
GameActivated();
}
else if(e.getSource() == submitTeams)
{
teamOneName = teamOneTF.getText();
teamTwoName = teamTwoTF.getText();

Swinpublic void actionPerformed(ActionEvent e)
{
if(e.getSource() == quit)
{
System.exit(0);
}
else if(e.getSource() == play)
{
System.out.println("PLAY");
quit.setVisible(false);
quit.setEnabled(false);
play.setVisible(false);
play.setEnabled(false);
GameActivated();
}
else if(e.getSource() == submitTeams)
{
teamOneName = teamOneTF.getText();
teamTwoName = teamTwoTF.getText();

SwingUtilities.invokeLater(new Runnable(){
public void run(){
teamOneLabel.setVisible(false);
teamOneTF.setVisible(false);
teamTwoLabel.setVisible(false);
teamTwoTF.setVisible(false);
submitTeams.setVisible(false);
}
});

}
else
System.out.println("Error: Button pressed with no known source.");
}

下面是被调用的 AudioHandler1 的内部:

            for(int count = 0; count < 71; count++)
{
gainControl.setValue((float) count*-1);
System.out.println("Waiting!" + Math.random());
try
{
Thread.sleep(50);
}
catch(InterruptedException ex)
{
Thread.currentThread().interrupt();
}

}

最佳答案

您在这里阻止了 EDT。使用SwingWorker调用 AudioHandler1

        new SwingWorker<Void,Void>()
{
@Override
protected Void doInBackground() throws Exception
{
AudioHandler1("Theme.wav",false,true);
return null;
}
}.execute();

关于java - 重绘 GUI 之前的 Thread.Sleep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com