📄 modifylabel.java
字号:
package calendar;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JOptionPane;
public class ModifyLabel extends Label implements MouseListener{
private boolean flag;
public ModifyLabel(String name) {
super(name);
flag=false;
}
public void mouseClicked(MouseEvent arg0) {
int year=MyCalendar.time.getYear();
int month=MyCalendar.time.getMonth();
int day=MyCalendar.time.getDay();
DayLabel cur=TopPanel.getCurrentLabel();
//当前没有选中年、月、日
if(cur==null)
JOptionPane.showMessageDialog(this.getParent(),"对不起,请选择您所要更改的年、月、日!","错误提示",JOptionPane.ERROR_MESSAGE);
else
{
BottomPanel.bopanel.clearBackGround(Integer.toString(day));
String type=cur.getName().trim();
//如果是增加按钮
if(this.getText().trim()=="^")
{
if(type=="DD") //如果是日期
{
day=Integer.parseInt(cur.getText().trim());
day=getDays(year,day,true);
cur.setText(Integer.toString(day));
}
else if(type=="MM")//如果是月份
{
month=Integer.parseInt(cur.getText().trim());
month++;
if(month>12)
month%=12;
int days=0;
TopPanel temp=(TopPanel) this.getParent().getParent();
day=Integer.parseInt(temp.getDD().getText().trim());
year=Integer.parseInt(temp.getYYYY().getText().trim());
days = getMonthDays(year, month, days);
if(day>days)
{
temp.getDD().setText(Integer.toString(days));
day=days;
}
cur.setText(Integer.toString(month));
}
else if(type=="YYYY")//如果是年份
{
year=Integer.parseInt(cur.getText().trim());
TopPanel temp=(TopPanel) this.getParent().getParent();
month=Integer.parseInt(temp.getMM().getText().trim());
day=Integer.parseInt(temp.getDD().getText().trim());
if(month==2&& day==29)
{
day=28;
temp.getDD().setText(Integer.toString(day));
}
year++;
cur.setText(Integer.toString(year));
}
}
else if(this.getText().trim()=="v")//如果是减少操作
{
if(type=="DD")//如果是日期
{
day=Integer.parseInt(cur.getText().trim());
if(flag==false)
{
flag=true;
}
if(day>1)
day--;
else
day=getDays(year,day,false);
cur.setText(Integer.toString(day));
}
else if(type=="MM")//如果是月份
{
month=Integer.parseInt(cur.getText().trim());
int days=0;
TopPanel temp=(TopPanel) this.getParent().getParent();
day=Integer.parseInt(temp.getDD().getText().trim());
year=Integer.parseInt(temp.getYYYY().getText().trim());
if(month>1)
month--;
else
month=12;
days = getMonthDays(year, month, days);
if(day>days)
{
temp.getDD().setText(Integer.toString(days));
day=days;
}
cur.setText(Integer.toString(month));
}
else if(type=="YYYY")//如果是年份
{
year=Integer.parseInt(cur.getText().trim());
if(year>1)
{
TopPanel temp=(TopPanel) this.getParent().getParent();
month=Integer.parseInt(temp.getMM().getText().trim());
day=Integer.parseInt(temp.getDD().getText().trim());
if(month==2&& day==29)
{
day=28;
temp.getDD().setText(Integer.toString(day));
}
year--;
}
else
JOptionPane.showMessageDialog(this.getParent(),"对不起,您已经将年减到0了!","错误提示",JOptionPane.ERROR_MESSAGE);
cur.setText(Integer.toString(year));
}
}
else
{
//System.exit(0);
}
MyCalendar.time.updateTime(year, month, day);
BottomPanel.bopanel.Update();
}
}
/**
* 得到当前月份的天数
* @param year
* @param month
* @param days
* @return
*/
private int getMonthDays(int year, int month, int days) {
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
{
if((year%4==0 && year%100!=0)|| year%400==0)
days=29;
else
days=28;
break;
}
default:break;
}
return days;
}
private int getDays(int year,int day,boolean flag)
{
TopPanel temp=(TopPanel) this.getParent().getParent();
int month=Integer.parseInt(temp.getMM().getText().trim());
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
{
if(flag==true){
day++;
if(day>31)
day=1;
}
else
{
day=31;
}
break;
}
case 4:
case 6:
case 9:
case 11:
{
if(flag==true){
day++;
if(day>30)
day=1;
}
else
day=30;
break;
}
case 2:
{
if(flag==true){
day++;
}
year=Integer.parseInt(temp.getYYYY().getText().trim());
if((year%4==0&&year%100!=0)||year%400==0)
{
if(flag==true)
{
if(day>29)
day=1;
}
else if(flag==false)
day=29;
}
else
{
if(flag==true)
{
if(day>28)
day=1;
}
else
day=28;
}
break;
}
default:break;
}
return day;
}
public void mouseEntered(MouseEvent arg0) {
setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent arg0) {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -