import java.awt.BorderLayout; //调用各种包
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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;
public class CtrWDS {
/**
* @param args
*/
public static void main(String[] args) {
//TOBO
AutoShutWindow a = new AutoShutWindow();
}
}
class AutoShutWindow {
boolean b = true;
Frame f = new Frame("自动关机程序");
Label Lnow = new Label("现在时间");
Label Lafter = new Label("关闭时间");
Label Lxc = new Label("离关机时间还有");
Label Lm = new Label("秒");
Button Byes = new Button("确定");
Button Bno = new Button("取消");
TextField TFnow = new TextField(18);
TextField TFafter = new TextField(18);
TextField TFxc = new TextField(10);
CheckboxGroup group = new CheckboxGroup();
Checkbox guanJi = new Checkbox("关机", group, true);
// Checkbox chongQu = new Checkbox("重启", group, false);
// Checkbox xiuMian = new Checkbox("休眠", group, false);
public AutoShutWindow() {
// while(b){
Panel p1 = new Panel();
TFnow.setEditable(false);
p1.setLayout(new BorderLayout());
p1.add(Lnow, BorderLayout.WEST);
p1.add(TFnow, BorderLayout.EAST);
Panel p2 = new Panel();
TFafter.setText(new SimpleDateFormat("yyyy年MM月dd日-HH:mm:ss")
.format(new Date()));
p2.setLayout(new BorderLayout());
p2.add(Lafter, BorderLayout.WEST);
p2.add(TFafter, BorderLayout.EAST);
Panel pB = new Panel();
pB.setLayout(new BorderLayout());
pB.add(Byes, BorderLayout.WEST);
pB.add(Bno, BorderLayout.EAST);
Panel pp = new Panel();
pp.setLayout(new BorderLayout());
pp.add(Lxc, BorderLayout.WEST);
pp.add(TFxc);
pp.add(Lm, BorderLayout.EAST);
Panel pCb = new Panel();
pCb.setLayout(new BorderLayout());
pCb.add(guanJi, BorderLayout.WEST);
// pCb.add(chongQu);
// pCb.add(xiuMian, BorderLayout.EAST);
FlowLayout f2 = new FlowLayout();
f.setLayout(f2);
f.add(p1);
f.add(p2);
f.add(pCb);
f.add(pp);
f.add(pB);
f.setBounds(200, 200, 220, 180);
f.setVisible(true);
f.setResizable(false);
class ClockThread extends Thread { // 动态显示时间
String nowTime;
public ClockThread() {
}
public void run() {
while (true) {
nowTime = new SimpleDateFormat("yyyy年MM月dd日-HH:mm:ss")
.format(new Date());
TFnow.setText(nowTime);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
new ClockThread().start();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
final boolean b = true;
Byes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = TFafter.getText();
SimpleDateFormat df = new SimpleDateFormat(
"yyyy年MM月dd日-HH:mm:ss");
Date d = null;
final long lafter, jl;
try {
d = df.parse(str);
} catch (ParseException e1) {
TFxc.setText("时间格式错误");
e1.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(d);
lafter = cal.getTimeInMillis();
class ClockThread extends Thread { // 动态显示时间
String nowTime;
public ClockThread() {
}
public void run() {
while (b) {
Calendar nowT = Calendar.getInstance();// 获取今天到公元的时间
nowT.setTime(new Date());
long nowJl = nowT.getTimeInMillis();
long jl = (lafter - nowJl) / 1000;
nowTime = new SimpleDateFormat(
"yyyy年MM月dd日-HH:mm:ss").format(new Date());
TFnow.setText(nowTime);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(jl);
TFxc.setText(String.valueOf(jl));
TFxc.setEditable(false);
if (jl == 0) {
try {
Runtime.getRuntime().exec("shutdown -S ");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
new ClockThread().start();
}
}
);
Bno.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
}