编写了一个自动关机的小软件。在写这个软件的过程中,主要学习了java中时间的使用、简单多线程使用。
使用的IDE工具是netBeans,界面是用这个工具画的。许多教材都给新手介绍Eclipse,我自己的感觉,netBeans更适合新手学习,最主要的原因是,用这个画界面,简直不能更方便。
软件界面如下图所示。在编写软件的过程中,所有的事件监听,也都是通过netbeans界面工具实现的。
代码略长,主要是netbeans生成的用户界面代码比较多。
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
/**
*
* @author hp
*/
public class AutoShutDown extends javax.swing.JFrame {
/**
* Creates new form AutoShutDown
*/
public AutoShutDown() {
initComponents();
this.setLocationRelativeTo(null);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jSeparator1 = new javax.swing.JSeparator();
jLabel1 = new javax.swing.JLabel();
monthTextField = new javax.swing.JTextField();
dayTextField = new javax.swing.JTextField();
hourTextField = new javax.swing.JTextField();
minuteTextField = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
minutes = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
infoLabel = new javax.swing.JLabel();
shutDownButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
closeButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("自动关机软件");
setResizable(false);
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
formMouseClicked(evt);
}
});
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
jLabel1.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel1.setText("定时间:");
monthTextField.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
dayTextField.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
hourTextField.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
minuteTextField.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel2.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel2.setText("月");
jLabel3.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel3.setText("日");
jLabel4.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel4.setText("时");
jLabel5.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel5.setText("分");
jLabel6.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel6.setText("定时长:");
minutes.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel7.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
jLabel7.setText("分钟");
infoLabel.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
infoLabel.setForeground(new java.awt.Color(51, 0, 204));