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(100); // 閃動訊息的提示圖片 markstationImg=null; Thread.sleep(100); //此處控制閃爍的時間長度 if(System.currentTimeMillis()-currentTimeMillis>2000){ twinkledFlag=true; } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
class MyLabel extends JLabel{ /** * */ private static final long serialVersionUID = 1L; @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 ); } } } }