mycalender.java
来自「这是一个非常简单的日历」· Java 代码 · 共 178 行
JAVA
178 行
package com.JavaSeries;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
public class MyCalender
{
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel(new BorderLayout());
JPanel panel3 = new JPanel(new GridLayout(7, 7));
JLabel[] label = new JLabel[49];
JLabel g_label = new JLabel("公历:");
JLabel y_label = new JLabel("年");
JLabel m_label = new JLabel("月");
JComboBox year = new JComboBox();
JComboBox month = new JComboBox();
Calendar rightNow=Calendar.getInstance();
public int ReturnWeek(int year,int month)
{
int dayOfWeek;
rightNow.set(year,month,1);
dayOfWeek=(int)(rightNow.get(Calendar.DAY_OF_WEEK));
return dayOfWeek;
}
public void ReSetDay(int week,int year,int month)
{
int dayScore=0,count=1;
Calendar cal=Calendar.getInstance();
cal.set(year,month+1,1);
cal.add(Calendar.MONTH,-1);
dayScore=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i=7;i<49;i++)
{
label[i].setText("");
}
week+=6;
dayScore+=week;
for (int i=week;i<dayScore; i++,count++)
{
label[i].setText(String.valueOf(count));
}
}
MyCalender()
{
JFrame frame=new JFrame("万年历");
frame.setSize(300,370);
frame.setLocation(200,200);
panel1.add(g_label);
panel1.add(year);
panel1.add(y_label);
panel1.add(month);
panel1.add(m_label);
for (int i=0; i<49;i++)
{
label[i]=new JLabel(" ",JLabel.CENTER);
panel3.add(label[i]); //把指定组件加入到面板
}
panel2.add(panel1, BorderLayout.NORTH);
panel2.add(panel3, BorderLayout.CENTER);
int nowYear, nowMonth, firstDay;
String week[]={ "日", "一", "二", "三", "四", "五", "六" };
for (int i=0;i<7;i++)
{
label[i].setText(week[i]); //更改文本内容
}
for (int i=1;i<=10000;i++)
{
year.addItem(i); //在下拉式列表中增加年份
}
for (int i=1; i<13;i++)
{
month.addItem(i);
}
nowYear=(int)(rightNow.get(Calendar.YEAR));
nowMonth=(int)(rightNow.get(Calendar.MONTH));
year.setSelectedIndex(nowYear-1); //设置所选择项
month.setSelectedIndex(nowMonth);
firstDay=ReturnWeek(nowYear,nowMonth);
ReSetDay(firstDay,nowYear,nowMonth);
class ClockAction implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
int c_year,c_month,c_week;
c_year=Integer.parseInt(year.getSelectedItem().toString()); //把得到的年份转换成整数
c_month=Integer.parseInt(month.getSelectedItem().toString()) - 1;
c_week=ReturnWeek(c_year,c_month);
ReSetDay(c_week,c_year,c_month);
}
}
year.addActionListener(new ClockAction()); //增加动作监听器
month.addActionListener(new ClockAction());
frame.setContentPane(panel2);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new MyCalender();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?