我已經創建了一個JLabel,它的圖像在兩幀之間來回切換。帶變化圖標的螺紋JLabel在另一個不斷變化的圖標上
private class CustomLabel extends JLabel implements Runnable
{
ImageIcon car1=new ImageIcon(/*icon*/);//makes the wave equal to the wave in outer class (passing reference)
ImageIcon car2=new ImageIcon(/*icon*/);
ImageIcon currentCar;
int current=0;
public CustomLabel()
{
if(x>0 && y<11)setIcon(wave1);
new Thread(this).start();//am i starting this right?
}
@Override
public void run()
{
while (true)
{
if(current == 0)
{
setIcon(wave1);
current++;
}
else
{
setIcon(wave2);
current--;
}
repaint();
try { Thread.sleep(150); }
catch (InterruptedException e) { }
}
}
}
所以當我添加這個JLabel它會在兩個車圖片之間交替。 首先,我通過在構造函數中啓動線程來正確啓動線程?
現在我們假設我想要在汽車之上有另一個動畫,那就是當我單擊JLabel時發生的5幀構成的爆炸動畫。我如何去關於在當前動畫上覆蓋第二個線程動畫。我覺得我需要重寫paintComponent(),但我不太確定如何做到這一點。
我明白了...感謝您的幫助。有沒有辦法讓第一個動畫繼續前進,並在其上添加另一個動畫?這甚至可以用JLabel。使用JPanel將圖標放在另一個圖標上會更好嗎? – user234234234 2015-04-05 02:19:25
@ user234234234我不知道你在做什麼 - 你是否試圖連續交換JLabel並在其上添加另一個動畫?你的JLabel一次只能顯示一個ImageIcon,所以你需要做一些其他的事情,也許可以在玻璃窗或其他窗體中繪製。 – 2015-04-05 02:21:53
是的,這正是我想要做的。我可以使用JPanel,然後在背景上繪製圖像嗎? – user234234234 2015-04-05 02:25:50