import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calendar extends JFrame{
//pUp面板用于盛放年、月和查询组件
JPanel pUp=new JPanel();
//pCenter用于盛放滚动组件
JPanel pCenter=new JPanel();
//定义标签
JLabel lblYear=new JLabel("年");
JLabel lblMonth=new JLabel("月");
JTextField jTextField = new JTextField(3);
JComboBox cbxMonth=new JComboBox();
JButton btnQuery=new JButton("查询");
//建立一个15行60列的文本区
JTextArea jtaContent=new JTextArea(15,60);
public Calendar() {
//定义标题
super("万年历");
//在构造方法中添加各个组件
pUp.add(lblYear);pUp.add(jTextField);
pUp.add(lblMonth);pUp.add(cbxMonth);pUp.add(btnQuery);
pCenter.add(jtaContent);
//采用边框式布局
this.add(pUp,BorderLayout.NORTH);
this.add(pCenter,BorderLayout.CENTER);
//获取当前时间,将cbxYear默认设置为当前年份
java.util.Calendar calendar= java.util.Calendar.getInstance();
//遍历月份
for(int i=1;i<=12;i++) {
cbxMonth.addItem(String.valueOf(i));
}
cbxMonth.setSelectedItem(String.valueOf(calendar.get(java.util.Calendar.MONTH)+1));
//“查询”按钮添加事件
btnQuery.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//获取cbxYear中的值,将其转换为字符串并赋给y,将y转换为int型赋给yt
String y=jTextField.getText();
int yt=Integer.valueOf(y);
int mt=Integer.valueOf(cbxMonth.getSelectedItem().toString());
int day=0;
int totalDays=0;
boolean isLeap;
if(yt%400==0||(yt%4==0&&yt%100!=0))
isLeap=true;
else
isLeap=false;
//统计从1900年到指定年月(该月的前一个月)的总天数,1900年的第一天恰好为周一
for(int i=1900;i<yt;i++) {
if(i%400==0||(i%4==0&&i%100!=0))
totalDays+=366;
else
totalDays+=365;
}
for(int i=1;i<=mt;i++) {
switch(i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
case 2:
if(isLeap)
day=29;
else
day=28;
}
if(i!=mt)
totalDays+=day;
}
//确定该月的第一天所在行前面有几个"\t"
int t=(totalDays+1)%7;
jtaContent.setText("日\t一\t二\t三\t四\t五\t六\n");
for(int i=0;i<t;i++) {
jtaContent.append("\t");
}
for(int i=1;i<=day;i++) {
jtaContent.append(i+"\t");
if((t+i)%7==0)
jtaContent.append("\n");
}
}
});
}
public static void main(String[] args) {
Calendar t=new Calendar();
//设置窗口大小
t.setSize(700, 400);
//设置窗口可见
t.setVisible(true);
//将窗口设置为屏幕中间位置
t.setLocationRelativeTo(null);
//直接关闭应用程序
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
万年历小游戏(Java课设)
共15个文件
xml:5个
png:5个
class:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 10 浏览量
2023-05-19
23:38:56
上传
评论
收藏 69KB ZIP 举报
温馨提示
运行效果展示地址:https://blog.csdn.net/qq_50954361/article/details/130774362 每个付费系统资源压缩包都包含源代码!!! 购买后有三天售后服务!!!购买前先看运行效果展示!!!以下还有内容要展开才可以看到~ 这些系统是我接单的时候留下的源码,现在挂在CSDN的付费资源上作为一个睡后收益!这些系统都是可以正常运行的!因为这些系统之前都交付给顾客了!顾客们也都跑起来了! 无论是用IDEA还是用eclipse跑都是可以跑起来的!只需要根据上面的部署教程即可在自己的电脑上把系统运行起来!在部署的过程中遇到任何Bug或者报错不要慌,百度搜一下可以解决百分之90的Bug或错误,建议先百度后私聊我,因为百度讲的比我更加好!更加清晰!
资源推荐
资源详情
资源评论
收起资源包目录
万年历.zip (15个子文件)
万年历
src
Calendar.java 3KB
out
production
万年历
Calendar$1.class 2KB
Calendar.class 2KB
.idea
uiDesigner.xml 9KB
workspace.xml 3KB
misc.xml 278B
inspectionProfiles
Project_Default.xml 1KB
modules.xml 265B
.gitignore 238B
万年历.iml 433B
img
SOXFD4MC$9LVVA31A[24]KB.png 14KB
[NMV$5~FXKC717}N3NWP[OF.png 14KB
U(31N$R8Z1{YVQ4XYUC3K0O.png 14KB
2RV45O4V1P5A24DWZLD07`A.png 13KB
7FHBKXNNL[DX}[email protected] 14KB
共 15 条
- 1
资源评论
骚戴
- 粉丝: 1w+
- 资源: 145
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功