0
これは私にとってずっと簡単だと思ったが、私はそのコンセプトを忘れている。一言で言えば、私はオーディオを消すための方法を作り、forループで '待つ'ためにThread.Sleepを使いました。そのメソッドを呼び出す前に、いくつかのラベルとテキストフィールドを表示しないように設定しましたが、スレッドがスリープして変更するまで待っていました。私はdo-whileループでラベルをラップして強制し、その後に再描画を呼び出そうとしましたが、何も修正しませんでした。何かアドバイスをいただければ幸いです。GUIを先に再描画する.Sleep
編集を含めるの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();
}
}
をinvokleするSwingWorkerを使用して、私はちょうどSwingUtilitiesはラベルがfalseに設定場合について、のActionEventの内側に上書きSwingWorkerのを入れてみましたが、私は、エラーをキャッチしています。例を教えてください。 –
投稿した内容を見たい場合は、投稿を編集することもできます。 –
@MarshalAlessiどのようなエラーが発生しますか – Antoniossss