Java swing實作一閃一閃的效果,其實思路隻是建立一個線程,線上程中不斷地切換你想要顯示的圖檔以此達到閃爍的效果。以下附上主要的代碼。
class TwinkledThread extends Thread{
public boolean twinkledFlag=false;
private long currentTimeMillis;
public TwinkledThread(long currentTimeMillis) {
this.currentTimeMillis=currentTimeMillis;
}
@Override
public void run() {
while(!twinkledFlag){
try {
markstationImg= markstation;
Thread.sleep();
// 閃動消息的提示圖檔
markstationImg=null;
Thread.sleep();
//此處控制閃爍的時長
if(System.currentTimeMillis()-currentTimeMillis>){
twinkledFlag=true;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class MyLabel extends JLabel{
/**
*
*/
private static final long serialVersionUID = L;
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2=(Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
if(twinkledBs!=null){
if(markstationImg!=null){
g2.drawImage(markstationImg.getImage(),
twinkledBs.getX(),twinkledBs.getY(), this
);
}
}
}
}