2006年9月9日星期六

定时关机程序(java)


以前做的java程序,现在和大家共享。

//Shutdown.java
package shutdown;

import java.awt.Toolkit;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.Dimension;

public class Shutdown {
boolean packFrame = false;

/**
* Construct and show the application.
*/
public Shutdown() {
Frame1 frame = new Frame1();
// Validate frames that have preset sizes
// Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
} else {
frame.validate();
}

// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}

/**
* Application entry point.
*
* @param args String[]
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}

new Shutdown();
}
});
}
}

//===================================================================================
//Frame1.java
package shutdown;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.io.*;

public class Frame1 extends JFrame {
int hh,mm,ss;
JPanel contentPane;
JLabel jLabel1 = new JLabel("ShutDown Computer's Time:");
JButton jButton1 = new JButton("Setting");
JButton jButton2 = new JButton("Cancel");
String[] c1={"0","1","2","3","4","5","6","7","8","9","10","11"};
String[] c2={"0","5","10","15","20","25","30","35","40","45","50","55"};
String[] c4={"PM","AM"};
JComboBox jComboBox1 = new JComboBox(c1);
JComboBox jComboBox2 = new JComboBox(c2);
JComboBox jComboBox3 = new JComboBox(c2);
JComboBox jComboBox4 = new JComboBox(c4);
JLabel jLabel2 = new JLabel("H");
JLabel jLabel3 = new JLabel("M");
JLabel jLabel4 = new JLabel("S");
Timer time=new Timer(1000,new shut(this));
Toolkit tool=getToolkit();
Image ico=tool.getImage(shutdown.Frame1.class.getResource("Shut.png"));
JLabel jLabel5 = new JLabel("作者:禹俊杰 日期:2006/05/13");
Runtime run=Runtime.getRuntime();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setResizable(false);
setSize(new Dimension(400, 300));
setIconImage(ico);
setTitle("ShutDown Computer");
jLabel1.setBounds(new Rectangle(28, 42, 164, 30));
jButton1.setBounds(new Rectangle(56, 161, 112, 29));
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jButton2.setBounds(new Rectangle(212, 161, 112, 29));
jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
jComboBox1.setBounds(new Rectangle(34, 92, 56, 28));
jComboBox2.setBounds(new Rectangle(129, 92, 56, 28));
jComboBox3.setBounds(new Rectangle(220, 92, 56, 28));
jComboBox4.setBounds(new Rectangle(317, 92, 52, 28));
jLabel2.setBounds(new Rectangle(97, 92, 30, 28));
jLabel3.setBounds(new Rectangle(193, 92, 35, 28));
jLabel4.setBounds(new Rectangle(286, 92, 33, 28));
jLabel5.setBounds(new Rectangle(100, 200, 230, 30));
this.addWindowListener(new Frame1_this_windowAdapter(this));
contentPane.add(jButton2);
contentPane.add(jButton1);
contentPane.add(jLabel1);
contentPane.add(jComboBox1);
contentPane.add(jLabel2);
contentPane.add(jLabel3);
contentPane.add(jComboBox4);
contentPane.add(jLabel4);
contentPane.add(jComboBox2);
contentPane.add(jComboBox3);
contentPane.add(jLabel5);
}

public void jButton1_actionPerformed(ActionEvent e) {
hh=jComboBox1.getSelectedIndex();
mm=jComboBox2.getSelectedIndex()*5;
ss=jComboBox3.getSelectedIndex()*5;
if(jComboBox4.getSelectedIndex()==0)
hh+=12;
time.start();
}

public void jButton2_actionPerformed(ActionEvent e) {
try {
run.exec("C:/WINDOWS/system32/shutdown -a");
} catch (Exception e1) {
JOptionPane.showMessageDialog(this, "关机程序未成功取消");
}
time.stop();
}

public void shutdown(ActionEvent e) {
Date now=new Date();
int h,m,s;
h=now.getHours();
m=now.getMinutes();
s=now.getSeconds();
if(h==hh && m==mm && s==ss){
try{
run.exec("C:/WINDOWS/system32/shutdown -s");
time.stop();
this.dispose();
}
catch(Exception e1){
JOptionPane.showMessageDialog(this,"关机程序未成功运行");
}
}
}

public void this_windowClosing(WindowEvent e) {
if(!time.isRunning())
System.exit(0);
}
}


class Frame1_this_windowAdapter extends WindowAdapter {
private Frame1 adaptee;
Frame1_this_windowAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}

public void windowClosing(WindowEvent e) {
adaptee.this_windowClosing(e);
}
}


class Frame1_jButton2_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}


class Frame1_jButton1_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}

class shut implements ActionListener {
private Frame1 adaptee;
shut(Frame1 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.shutdown(e);
}
}


1 条评论:

匿名 说...

支持开源!!!

©2006 YuJunjie All Rights Reserved.