对于用户输入的年份,点击【判定】按钮,则通过打开话框形式给出定结果。
(1)输入为空,则显示如下警告对话框
(2)输入内容不是数字,则显示如下错误对话框。
(3)输入的是有效的年,则显示消息对话框。
LeapYear.java
package com.A;
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.JTextField;
import javax.swing.WindowConstants;
public class LeapYear {
public void CreatJFrame() {
JFrame jf = new JFrame("闰年判定");
JPanel panel = new JPanel();
jf.add(panel);
placeComponents(panel);
jf.setVisible(true);
jf.setSize(400,300);
jf.setResizable(false);
//在屏幕中设置显示的位置
jf.setLocation(700,500);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public void placeComponents(JPanel panel) {
panel.setLayout(null);
JLabel label = new JLabel("请输入有效的年:");
label.setBounds(50,40,120,25);
panel.add(label);
JTextField text = new JTextField(20);
text.setBounds(170,40,165,25);
panel.add(text);
JButton button = new JButton("判定");
button.setBounds(140,130, 80, 25);
//监听,对输入的内容进行判断
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String input = text.getText();
if(input.equals("")) {
Toolkit.getDefaultToolkit().beep();
//弹窗口
JOptionPane.showMessageDialog(null, "年不能为空!", "警告", JOptionPane.WARNING_MESSAGE);
}
if(isNumeric(input)) {
int year = Integer.parseInt(input);
if(year%4==0&&year%100!=0||year%400==0) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, year+"年是闰年!", "消息", JOptionPane.INFORMATION_MESSAGE);
}
else {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, year+"年不是闰年!", "消息", JOptionPane.INFORMATION_MESSAGE);
}
}
else {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "请输入有效的年!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
panel.add(button);
}
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
public static void main(String[] args) {
new LeapYear().CreatJFrame();
}
}
欢迎关注
掘金:https://juejin.cn/user/4156573190724030
Github:https://github.com/zhubingran
优快云:https://blog.youkuaiyun.com/qq_43118757
QQ:1330022055