IDEA简单日历

本文介绍了一个使用Java Swing构建的简易日历应用。在IntelliJ IDEA中,通过创建`main`类和`Frame`类来实现日历的显示,包括上月和下月的切换功能。`Frame`类包含三个面板,分别用于展示日期、星期和当前月份。同时,定义了`calendarBean`类来处理日历逻辑,包括设置年份、月份以及处理事件响应。应用通过监听事件来更新日历视图,展示指定年份和月份的日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三个Java文件
main文件

package com.a;

import javax.swing.*;

public class main {

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Frame f=new Frame();
    f.setTitle("日历");
    f.setBounds(100, 100, 400, 400);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

Frame文件

package com.a;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.;
import javax.swing.
;
public class Frame extends JFrame{
JPanel panel1,panel2,panel3;//三个面板展示不同的内容
JButton button1,button2;//两个按钮分别代表上月和下月
String []str={“日”,“一”,“二”,“三”,“四”,“五”,“六”};
JButton button[]=new JButton[str.length];
JLabel [] label;
JLabel now=new JLabel();
calendarBean calen=new calendarBean();
String []day;
Frame(){
init();
}
void init(){
calen.setYear(2022);
calen.setMonth(7);
button1=new JButton(“上月”);
button1.setActionCommand(“last”);
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
calen.actionPerformed(e);
}
});
button2=new JButton(“下月”);
button2.setActionCommand(“next”);
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
calen.actionPerformed(e);
}
});
panel1=new JPanel();
panel1.add(button1);
panel1.add(button2);
GridLayout grid=new GridLayout(7,7);
add(panel1,BorderLayout.NORTH);
panel2=new JPanel();
for(int i=0;i<str.length;i++){
button[i]=new JButton(str[i]);
panel2.add(button[i]);
}
day=calen.getCalendar();
label=new JLabel[42];
for(int i=0;i<42;i++){
label[i]=new JLabel();
panel2.add(label[i]);
}
calen.label=this.label;
for(int i=0;i<day.length;i++){
label[i].setText(" "+day[i]);
}
add(panel2,BorderLayout.CENTER);
panel2.setLayout(grid);
panel3=new JPanel();
now.setText(calen.year+“年”+calen.month+“月”);
calen.now=now;
panel3.add(now);
add(panel3,BorderLayout.SOUTH);
}
}

calendarBean文件

package com.a;

import javax.swing.;
import java.awt.event.
;
import java.util.Calendar;

public class calendarBean implements ActionListener {
int year = 0, month = 0;
JLabel now;
JLabel[] label;
String[] day;

public void setYear(int year) {
    this.year = year;
}

public void setMonth(int month) {
    this.month = month;
}

public String[] getCalendar() {
    String[] a = new String[42];
    Calendar rill = Calendar.getInstance();// 初始化一个日历对象
    rill.set(year, month - 1, 1);
    int weekday = rill.get(Calendar.DAY_OF_WEEK) - 1;
    int day = 0;
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
            || month == 10 || month == 12)
        day = 31;
    if (month == 4 || month == 6 || month == 9 || month == 11)
        day = 30;
    if (month == 2) {
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
            day = 29;
        } else
            day = 28;
    }
    for (int i = 0; i < weekday; i++)
        a[i] = "";
    for (int i = weekday, n = 1; i < weekday + day; i++) {
        a[i] = String.valueOf(n);
        n++;
    }
    for (int i = weekday + day; i < a.length; i++)
        a[i] = "";
    return a;

}

public void actionPerformed(ActionEvent e) {
    String str = e.getActionCommand();
    if (str.equals("last")) {
        month--;
        if (month == 0) {
            year--;
            month = 12;
        }
    } else if (str.equals("next")) {
        month++;
        if (month == 13) {
            year++;
            month = 1;
        }
    }
    now.setText(year + "年" + month + "月");
    day = getCalendar();
    for (int i = 0; i < day.length; i++) {
        label[i].setText("        " + day[i]);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值