java编程闰年_java编程题GUI界面闰年判断

[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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值