[Java] 纯文本查看 复制代码package com.test.leapyear;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;
public class LeapYear extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LeapYear frame = new LeapYear();
frame.setTitle("闰年判定");
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 创建UI
* Create the frame.
*/
public LeapYear() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("请输入有效的年:");
lblNewLabel.setBounds(61, 82, 128, 15);
contentPane.add(lblNewLabel);
JTextPane textPane = new JTextPane();
textPane.setBounds(221, 82, 123, 21);
contentPane.add(textPane);
JButton btnNewButton = new JButton("判定");
btnNewButton.setBounds(143, 191, 93, 23);
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
isLeap(textPane.getText());
}
});
contentPane.add(btnNewButton);
}
/**
* 判断是不是闰年,并且给出相应提示
* [url=home.php?mod=space&uid=952169]@Param[/url] yearStr
*/
private void isLeap(String yearStr) {
//判断输入是不是为空 警告提示
if(yearStr ==null || "".equals(yearStr)) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "年不能为空", "警告",JOptionPane.WARNING_MESSAGE);
return;
}
//判断是否为数字 错误提示
if(!isNumeric(yearStr)) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "请输入有效的年", "错误",JOptionPane.ERROR_MESSAGE);
return;
}
//判断是不是闰年 消息提示
long year = Long.parseLong(yearStr);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null,yearStr +"是闰年!", "消息",JOptionPane.INFORMATION_MESSAGE);
} else {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, yearStr +"不是闰年!" ,"消息",JOptionPane.INFORMATION_MESSAGE);
}
}
/**
* 利用正则表达式判断字符串是否是数字
* @param str
* @return
*/
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("\\d{4}");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
}