51,407
社区成员
发帖
与我相关
我的任务
分享private class JP3 extends JPanel{
private static final long serialVersionUID = 1L;
private int offset=0;
private LabelManager labelmanager;
public JP3(int pos){
// super(new GridLayout(6,7));
this.setLayout(new GridLayout(6,7));
this.setPreferredSize(new Dimension(width,170));
offset=pos-1;
labelmanager=lm[pos];
initJP3();
}
private void initJP3(){
updateDate();
}
public void updateDate(){
this.removeAll();
labelmanager.clear();
Date temp=select.getTime();
Calendar select=Calendar.getInstance();
select.setTime(temp);
select.add(Calendar.MONTH, offset); //根据offset改变日期
select.set(Calendar.DAY_OF_MONTH,1);
int index=select.get(Calendar.DAY_OF_WEEK);
for(int n=0;n<index;n++){ //在本月1号开始之前添加空白标签
JLabel blank=new JLabel();
this.add(blank);
}
int sum=select.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int i=0;i<sum;i++){
labelmanager.addLabel(new MyLabel(select.get(Calendar.YEAR),
select.get(Calendar.MONTH),select.get(Calendar.DAY_OF_MONTH),offset));
select.add(Calendar.DAY_OF_MONTH,1);
}
for(MyLabel my:labelmanager.getLabels()){
this.add(my);
}
select.setTime(temp); //恢复到当前日期
}
}
private class MyLabel extends JLabel implements Comparator<MyLabel>,MouseListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private int year,month,day;
private boolean isSelected;
private int offset;
@SuppressWarnings("unused")
public MyLabel(){
}
public MyLabel(int year,int month,int day,int offset){
super(""+day,JLabel.CENTER);
this.offset=offset;
this.year=year;
this.day=day;
this.month=month;
this.setFont(font);
}
}
private class LabelManager{
private List<MyLabel> list;
public LabelManager(){
list=new ArrayList<MyLabel>();
}
public void addLabel(MyLabel my){
list.add(my);
}
}