// //获得弹出日历窗口的位置
// Point allPoint = UserLoginRecord.this.getLocationOnScreen();//获得组件的位置,形式是一个指定屏幕坐标空间中组件左上角的一个点
// Point point = txtStartTime.getLocation();
// int x = point.x + allPoint.x;
// int y = point.y + allPoint.y + 55;
// CalendarWindow cal = new CalendarWindow(null,x,y);
// cal.showDateDialog();
// if (cal.getDate() != null){
// java.util.Date date;
// java.sql.Date sqldate = cal.getDate();
// date = new java.util.Date(sqldate.getYear(),sqldate.getMonth(),sqldate.getDate(),0,0,1);
/*JTable监听器类*/
class Tml extends MouseAdapter{
public void mouseClicked(MouseEvent e){
int row = tabCalendar.getSelectedRow();
int cols = tabCalendar.getSelectedColumn();
String days = ((String)tabCalendar.getValueAt(row,cols)).trim();
public void showDateDialog(){
this.setVisible(true);
}
public void setDate(String year, String month, String days){
date = java.sql.Date.valueOf(year + "-" + month + "-" + days);
ok = false;
}
public java.sql.Date getDate(){
return date;
}
/*清除日历表*/
public void clearAll(int rows, int cols){
for (int i = 0; i < rows ; i++){
for (int j = 0; j < cols; j++){
tabCalendar.setValueAt("",i,j);
}
}
}
/*重新布置日历表*/
public void changeEvent(){
Object objYear = spnYear.getValue();
int year = Integer.parseInt(objYear.toString());
int month = cboMonth.getSelectedIndex();
int days_of_month = getDaysOfMonth(year,month+1);
calendar.set(year,month,1);
boolean isOne = false;
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
int dayNumber = 0;
for (int i = 0; i < 6; i++) {
for (weekday = (isOne ? 1 : weekday); weekday < 8; weekday++) {
if (dayNumber >= days_of_month ){
break;
}
tabCalendar.setValueAt(days[dayNumber], i, weekday - 1);
dayNumber++;
isOne = true;
}
if (dayNumber >= days_of_month){
break;
}
}
}
/*获取某年某月的最大天数*/
public int getDaysOfMonth(int year, int month){
GregorianCalendar gc = new GregorianCalendar(year,month-1,1,0,0,0);
int[] daysOfMonth = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if(gc.isLeapYear(year)){
daysOfMonth[2]=29;
}
return daysOfMonth[month];
}
public static void main(String[] args){
new CalendarWindow(new JFrame(),100,100).showDateDialog();
}
}