/**
*
*/
package com.itany.shutdown;
import java.awt.GraphicsConfiguration;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* @author Administrator
*
*/
public class ShutDown extends JFrame
{
private JFrame jfFrame;
private JPanel jPanel1;
private JPanel timePanel;
private JPanel shezhiPanel;
private JTextField year=new JTextField(6);
private JTextField month=new JTextField(6);
private JTextField day=new JTextField(6);
private JTextField hour=new JTextField(6);
private JTextField minute=new JTextField(6);
private JTextField seconds=new JTextField(6);
private JTextField nowTime=new JTextField(6);
private JTextField shutTime=new JTextField(6);
private JTextField shengyuTime=new JTextField(6);
private Thread th;
public ShutDown() throws HeadlessException
{
jfFrame=new JFrame("自动关机");
jPanel1=new JPanel(new GridLayout(1,2,3,3));
timePanel=new JPanel(new GridLayout(3, 2));
shezhiPanel=new JPanel();
year.setText("0000");
month.setText("00");
day.setText("00");
hour.setText("00");
minute.setText("00");
seconds.setText("00");
initUi();
}
private void initUi()
{
year.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
month.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
day.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
hour.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
minute.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
seconds.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){
}else{
e.consume(); //关键,屏蔽掉非法输入
}
}
}
);
timePanel.setBorder(BorderFactory.createTitledBorder("时间"));
shezhiPanel.setBorder(BorderFactory.createTitledBorder("设置时间"));
//时间panel初始化
nowTimes times = new nowTimes();
new Thread(times).start();
// String times=getSystemTime();
nowTime.setEditable(false);
timePanel.add("nowTime", new JLabel("现在时间:"));
timePanel.add(nowTime);
shutTime.setEditable(false);
timePanel.add("shutTime", new JLabel("关机时间:"));
timePanel.add(shutTime);
shengyuTime.setEditable(false);
timePanel.add("shengyuTime", new JLabel("距离关机剩余:"));
timePanel.add(shengyuTime);
JButton jButton=new JButton("设置关机时间");
JButton jButton1=new JButton("退出");
JButton jButton2=new JButton("现在关机");
JButton jButton3=new JButton("取消");
jButton3.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Runtime.getRuntime().exec("cmd /c Shutdown -a");
th.interrupt();
// daojishi name=new daojishi(true);
// Thread tt = new Thread(name);
// tt.start();
// System.out.println("fdsafdsafdsa:=="+Thread.interrupted());
}
catch (Exception e1)
{
th.interrupt();
e1.printStackTrace();
}
}
}
);
jButton2.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Runtime.getRuntime().exec("cmd /c Shutdown -s -t 0");
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
);
jButton1.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
int n=JOptionPane.showConfirmDialog(null, "确定退出?","确定退出?",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_NO_OPTION)
{
System.exit(0);
}
}
}
);
jButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String t=nowTime.getText(); //当前时间
String y=year.getText();
String m=month.getText();
String d=day.getText();
String h=hour.getText();
String min=minute.getText();
String sec=seconds.getText();
String dates=y+"-"+m+"-"+d+" "+h+":"+min+":"+sec; //设置时间
Date date1=new Date();
Date date2=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
date1=sdf.parse(dates); //设置时间
date2=sdf.parse(t); //当前时间
long t1=date1.getTime();
long t2=date2.getTime();
long t3=t1-t2;
long hours=(t3%(1000*60*60*24))/ (1000 * 60 * 60);
long mins= (t3 % (1000*60 * 60)) / (1000 * 60);
long se=(t3 % (1000*60)) / 1000;
if(date1.before(date2))
{
JOptionPane.showMessageDialog(null, "关机时间不能小于当前时间!");
return;
}
else
{
shutTime.setText(dates);
daojishi djs = new daojishi(t3);
th=new Thread(djs);
th.start();
try {
Runtime.getRuntime().exec("cmd /c Shutdown -s -t "+(hours*3600+mins*60+se));
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
catch (ParseException e1)
{
e1.printStackTrace();
}
}
});
shezhiPanel.add(year);
shezhiPanel.add(new JLabel("年"));
shezhiPanel.add(month);
shezhiPanel.add(new JLabel("月"));
shezhiPanel.add(day);
shezhiPanel.add(new JLabel("日"));
shezhiPanel.add(hour);
shezhiPanel.add