import java.awt.Image;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.ImageIcon;
/**
* 以繼承TimerTask類的方式實現多線程
*/
public class MyTimerTask extends TimerTask {
private int index = 0;
testPanel test=new testPanel();
private Timer timer = new Timer();
private static final Image pathtempImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header0.jpg").getImage();
private static final Image normalImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header1.jpg").getImage();
private static final Image activeImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header2.jpg").getImage();
private static final Image TImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header3.jpg").getImage();
private static final Image FImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header4.jpg").getImage();
private static final Image FRImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header5.jpg").getImage();
private static final Image SImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header6.jpg").getImage();
private static final Image[] imageArray=new Image[]{pathtempImg,normalImg,activeImg,TImg,FImg,FRImg,SImg};
Date d=new Date();
Date d2=new Date();
Calendar cpcalendar = new GregorianCalendar();
Calendar cpcalendar2 = new GregorianCalendar();
@Override
public void run() {
String date1="2011-1-10 16:00:00";
String date2="2011-1-10 18:36:00";
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
d=f.parse(date1);
cpcalendar.setTime(d);
d2=f.parse(date2);
cpcalendar2.setTime(d2);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar c2 = Calendar.getInstance();
if(c2.getTimeInMillis() < cpcalendar.getTimeInMillis()){
test.setPanelImage(null);
System.out.println("節目單播放時間未開始!請等待ing....");
}
if(c2.getTimeInMillis()>cpcalendar.getTimeInMillis() && c2.getTimeInMillis()<cpcalendar2.getTimeInMillis()){
System.out.println("index="+index);
if(index==imageArray.length){
index=0;
}
test.setPanelImage(imageArray[index]);
index++;
System.out.println("線程運行中ing...當前時間:"+c2.getTime());
}
if(c2.getTimeInMillis() > cpcalendar2.getTimeInMillis()){
this.cancel();
timer=null;
test.setPanelImage(null);
System.out.println("節目單播放完成!");
return;
}
}
public void start() {
timer.scheduleAtFixedRate(this, new Date(), 1000); // 設置定時任務執行時間,及其速率(2s執行一次)
System.out.println("開啓線程:scheduled time : " + this.scheduledExecutionTime());
}
public long getScheduleTime() {
return this.scheduledExecutionTime();
}
public static void main(String[] args) {
MyTimerTask mtt = new MyTimerTask();
mtt.start();
}
}
==========================
import java.awt.Image;
import java.io.IOException;
import java.util.Timer;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class testPanel {
private JFrame f = new JFrame("測試");
private Box horizontal = Box.createHorizontalBox();
public void setPanelImage(Image image){
horizontal.removeAll();
JTestPanel panel=new JTestPanel(image);
horizontal.add(panel);
f.add(horizontal);
f.setVisible(true);
}
/**
* Create the application.
*/
public testPanel() {
init();
}
public void init(){
//禁用窗口裝飾品(最大化最小化)
f.setUndecorated(true);
//置頂顯示
f.setAlwaysOnTop(true);
//這個就是設置窗口最大化
f.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
f.getGraphicsConfiguration().getDevice().setFullScreenWindow(f);
// f.setSize(415,280);
Image img=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header6.jpg").getImage();
JTestPanel panel= new JTestPanel(img);
f.getLayeredPane().add(panel, new Integer(Integer.MIN_VALUE));
panel.setBounds(0, 0, new ScreenSize().getScreenWidth(),new ScreenSize().getScreenHeight());
((JPanel)f.getContentPane()).setOpaque(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
===============================
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class JTestPanel extends JPanel{
protected Image image;
public JTestPanel(Image image){
super();
this.image=image;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//參數是定位圖片的位置。
if (this.image != null) g.drawImage(this.image, 0, 0, 300,200, this);
}
}
===============================
/**
* 獲取屏幕分辨率
* @author cmxie
*
*/
public class ScreenSize {
/**
* 屏幕的寬
*/
private int screenWidth;
/**
* 屏幕的高
*/
private int screenHeight;
/**
* 設置屏幕的寬
* @param screenWidth
*/
public void setScreenWidth(int screenWidth){
this.screenWidth = screenWidth;
}
/**
* 獲取屏幕的高
* @return
*/
public int getScreenHeight() {
setScreenHeight((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().height);
return screenHeight;
}
/**
* 設置屏幕的高
* @param screenHeight
*/
public void setScreenHeight(int screenHeight) {
this.screenHeight = screenHeight;
}
/**
* 獲取屏幕的寬
* @return
*/
public int getScreenWidth() {
setScreenWidth((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().width);
return screenWidth;
}
public static void main(String [] args){
System.out.println("width="+new ScreenSize().getScreenWidth());
System.out.println("heigh="+new ScreenSize().getScreenHeight());
}
}
==============================
圖片循環顯示,每隔n秒顯示下一張圖片。
自己定位圖片顯示的位置。