import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.JOptionPane;class calendarbean
{
String day[];
int year=2005,month=0;
public void setyear(int year)
{
this.year=year;
}
public int getyear()
{
return year;
}
public void setmonth(int month)
{
this.month=month;
}
public int getmonth()
{
return month;
}
public String[] getcalendar()
{
String a[]=new String[42];
Calendar 日历=Calendar.getInstance();
日历.set(year,month-1,1 );
int 星期几=日历.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=星期几,n=1;i<星期几+day;i++)
{
a[i]=String.valueOf(n);
n++;
}
return a;
}
}
// 画整个日历的框架的类
class calendarframe extends Frame implements ActionListener
{
Label labelDay[]=new Label [42];
Button titleName[]=new Button[7];
String name[]={"日","一","二","三","四","五","六"};
TextField yearin;
TextField monthin;
Button get;
int year=2006,month=10;
calendarbean calendar;
Label showMessage=new Label("",Label.CENTER);
public calendarframe ()
{
Panel pcenter=new Panel();
pcenter.setLayout(new GridLayout(7,7));
for(int i=0;i<7;i++){
titleName[i]=new Button(name[i]);
pcenter.add(titleName[i]);
}
for(int i=0;i<42;i++)
{
labelDay[i]=new Label("",Label.CENTER);
pcenter.add(labelDay[i]);
}
calendar=new calendarbean();
calendar.setyear(year);
calendar.setmonth(month);
String day[]=calendar.getcalendar();
for(int i=0;i<42;i++)
{
labelDay[i].setText(day[i]);
}
TextField yearin=new TextField(10);
TextField monthin=new TextField(10);
Button get=new Button ("点击");
get.addActionListener(this);
Panel pnorth=new Panel(),psouth=new Panel();
pnorth.add(yearin);
pnorth.add(monthin);
pnorth.add(get);
psouth.add(showMessage);
showMessage.setText("日历: "+calendar.getyear()+"年"+calendar.getmonth()+"月");
ScrollPane scrollPane=new ScrollPane();
scrollPane.add(pcenter);
//Container container=getContentPane();
add(scrollPane,BorderLayout.CENTER);
add(pnorth,BorderLayout.NORTH);
add(psouth,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e)
{ try{year=Integer.parseInt(yearin.getText());
month=Integer.parseInt(monthin.getText());
calendar.setyear(year);
calendar.setmonth(month);
String day[]=calendar.getcalendar();
for (int i=0;i<42 ;i++ )
{
labelDay[i].setText(day[i]);
}
}
catch(NumberFormatException ex)
{
}
showMessage.setText("日历:"+calendar.getyear()+"年"+calendar.getmonth()+"月");
validate();
}
}
//主类 但不知道如何编写关闭窗口的函数
public class calendarmainclass2
{
public static void main(String args[])
{
calendarframe frame=new calendarframe();
frame.setBounds(100,100,360,300);
frame.setVisible(true);
}
}
没有语法错误 但是不能运行 好像说什么异常 请求哪位达人帮忙修改一下 万分感谢 ~~~!
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.JOptionPane;class calendarbean
{
String day[];
int year=2005,month=0;
public void setyear(int year)
{
this.year=year;
}
public int getyear()
{
return year;
}
public void setmonth(int month)
{
this.month=month;
}
public int getmonth()
{
return month;
}
public String[] getcalendar()
{
String a[]=new String[42];
Calendar 日历=Calendar.getInstance();
日历.set(year,month-1,1 );
int 星期几=日历.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=星期几,n=1;i<星期几+day;i++)
{
a[i]=String.valueOf(n);
n++;
}
return a;
}
}
// 画整个日历的框架的类
class calendarframe extends Frame implements ActionListener
{
Label labelDay[]=new Label [42];
Button titleName[]=new Button[7];
String name[]={"日","一","二","三","四","五","六"};
TextField yearin;
TextField monthin;
Button get;
int year=2006,month=10;
calendarbean calendar;
Label showMessage=new Label("",Label.CENTER);
public calendarframe ()
{
Panel pcenter=new Panel();
pcenter.setLayout(new GridLayout(7,7));
for(int i=0;i<7;i++){
titleName[i]=new Button(name[i]);
pcenter.add(titleName[i]);
}
for(int i=0;i<42;i++)
{
labelDay[i]=new Label("",Label.CENTER);
pcenter.add(labelDay[i]);
}
calendar=new calendarbean();
calendar.setyear(year);
calendar.setmonth(month);
String day[]=calendar.getcalendar();
for(int i=0;i<42;i++)
{
labelDay[i].setText(day[i]);
}
TextField yearin=new TextField(10);
TextField monthin=new TextField(10);
Button get=new Button ("点击");
get.addActionListener(this);
Panel pnorth=new Panel(),psouth=new Panel();
pnorth.add(yearin);
pnorth.add(monthin);
pnorth.add(get);
psouth.add(showMessage);
showMessage.setText("日历: "+calendar.getyear()+"年"+calendar.getmonth()+"月");
ScrollPane scrollPane=new ScrollPane();
scrollPane.add(pcenter);
//Container container=getContentPane();
add(scrollPane,BorderLayout.CENTER);
add(pnorth,BorderLayout.NORTH);
add(psouth,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e)
{ try{year=Integer.parseInt(yearin.getText());
month=Integer.parseInt(monthin.getText());
calendar.setyear(year);
calendar.setmonth(month);
String day[]=calendar.getcalendar();
for (int i=0;i<42 ;i++ )
{
labelDay[i].setText(day[i]);
}
}
catch(NumberFormatException ex)
{
}
showMessage.setText("日历:"+calendar.getyear()+"年"+calendar.getmonth()+"月");
validate();
}
}
//主类 但不知道如何编写关闭窗口的函数
public class calendarmainclass2
{
public static void main(String args[])
{
calendarframe frame=new calendarframe();
frame.setBounds(100,100,360,300);
frame.setVisible(true);
}
}
没有语法错误 但是不能运行 好像说什么异常 请求哪位达人帮忙修改一下 万分感谢 ~~~!
TextField monthin=new TextField(10);
改为
yearin = new TextField(10);
monthin = new TextField(10);你重新定义了两个local variable, member variable没有实例化
{
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;
} 我改成了:
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;
}
}
可以运行啊.
{
public calendarframe()
{
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}