1

私はJavaスイングで簡単なアニメーションプログラムを持っています。しかし、それは機能していません。

    try{
    for(int i = 1; i<=500; i++){    
    ImageIcon icon = new ImageIcon("img\\COVERFront.jpg");
    Image image = icon.getImage();
    Image scaled =  image.getScaledInstance(400, i, 0);
    jLabel2.setIcon(new ImageIcon(scaled));
    Thread.sleep(1000);
    }
    }
    catch(InterruptedException ie){}

私はnetbeans 7.1で作業しています。

4

2 に答える 2

5

あなたのコードから、アイコンのサイズを大きく (アップスケーリング) してアイコンをアニメーション化しようとしていることがわかります。ただし、スリープ状態のタスクはイベント ディスパッチ スレッド (EDT) で実行されるため、GUI がフリーズします。そのため、Thread.sleep() などの時間のかかるタスクは、イベント ディスパッチ スレッドで実行しないでください。

SwingUtilitiesまたはタイマーの使用を検討する

于 2012-11-21T06:01:11.410 に答える