【发布时间】:2016-10-29 19:54:35
【问题描述】:
我认为这对我来说会简单得多,但我错过了这个概念。简而言之,我制作了一种淡出音频的方法,并使用 Thread.Sleep 让它在 for 循环中“等待”。在调用该方法之前,我将几个标签和文本字段设置为不可见,但它们要等到线程休眠后才会更改。我试图将标签包装在一个 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();
}
}
【问题讨论】:
标签: java eclipse windows multithreading thread-sleep