主题:怎么样使用表格显示日历???
帮忙填填代码
CalendarExample.java
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalendarExample
{
public static void main(String args[])
{
new GoodWindow();
}
}
class GoodWindow extends JFrame implements ItemListener
{
JComboBox list=null;
CalenderPane calenderPane=null;
Container con=null;
GoodWindow()
{
list=【代码1】 /创建一个下拉列表,该列表不含有任何选项。
for(int i=2000;i<=2010;i++)
{
String temp=""+i;
【代码2】//list添加选项temp。
}
【代码3】 //将当前窗口注作为list的监视器。
con=this.getContentPane();
con.add(list,BorderLayout.NORTH);
calenderPane=new CalenderPane(2005);
con.add(calenderPane,BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,400,240);
setVisible(true);
validate();
}
【代码4】 //ItemListener接口方法的声明。
{
con.remove(calenderPane);
String str=(String)list.getSelectedItem();
int year=Integer.parseInt(str);
calenderPane=new CalenderPane(year);
con.add(calenderPane,BorderLayout.CENTER);
con.validate();
validate();
}
}
class CalenderPane extends JPanel implements ActionListener
{
JTable table;
Object a[][]=new Object[6][7];
Object name[]={"星期日","星期一","星期二","星期三", "星期四","星期五","星期六"};
JButton nextMonth,previousMonth;
int year=2005,month=1;
CalendarBean calendar;
JLabel showMessage=new JLabel("",JLabel.CENTER);
public CalenderPane(int year)
{
setLayout(new BorderLayout());
calendar=new CalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
String day[]=calendar.getCalendar();
table=【代码5】//创建表格对象,该表格维护的数据是二维数组a,
//表格的标题是一维数组name。
table.setRowSelectionAllowed(false);
setTable(day);
nextMonth=new JButton("下月");
previousMonth=new JButton("上月");
【代码6】//将当前面板注册为nextMonth按钮的AcitinEvent事件监视器。
【代码7】//将当前面板注册为previousMonth按钮的AcitinEvent事件监视器。
JPanel pNorth=new JPanel(),
pSouth=new JPanel();
【代码8】//pNorth添加按钮previousMonth。
【代码9】//pNorth添加按钮nextMonth。
【代码10】// pSouth添加按钮showMessage。
showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );
add(new JScrollPane(table),BorderLayout.CENTER);
add(pNorth,BorderLayout.NORTH);
add(pSouth,BorderLayout.SOUTH);
validate();
}
[color=FF00FF]由于内容过长 ,转下个贴。。。[/color]
CalendarExample.java
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalendarExample
{
public static void main(String args[])
{
new GoodWindow();
}
}
class GoodWindow extends JFrame implements ItemListener
{
JComboBox list=null;
CalenderPane calenderPane=null;
Container con=null;
GoodWindow()
{
list=【代码1】 /创建一个下拉列表,该列表不含有任何选项。
for(int i=2000;i<=2010;i++)
{
String temp=""+i;
【代码2】//list添加选项temp。
}
【代码3】 //将当前窗口注作为list的监视器。
con=this.getContentPane();
con.add(list,BorderLayout.NORTH);
calenderPane=new CalenderPane(2005);
con.add(calenderPane,BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,400,240);
setVisible(true);
validate();
}
【代码4】 //ItemListener接口方法的声明。
{
con.remove(calenderPane);
String str=(String)list.getSelectedItem();
int year=Integer.parseInt(str);
calenderPane=new CalenderPane(year);
con.add(calenderPane,BorderLayout.CENTER);
con.validate();
validate();
}
}
class CalenderPane extends JPanel implements ActionListener
{
JTable table;
Object a[][]=new Object[6][7];
Object name[]={"星期日","星期一","星期二","星期三", "星期四","星期五","星期六"};
JButton nextMonth,previousMonth;
int year=2005,month=1;
CalendarBean calendar;
JLabel showMessage=new JLabel("",JLabel.CENTER);
public CalenderPane(int year)
{
setLayout(new BorderLayout());
calendar=new CalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
String day[]=calendar.getCalendar();
table=【代码5】//创建表格对象,该表格维护的数据是二维数组a,
//表格的标题是一维数组name。
table.setRowSelectionAllowed(false);
setTable(day);
nextMonth=new JButton("下月");
previousMonth=new JButton("上月");
【代码6】//将当前面板注册为nextMonth按钮的AcitinEvent事件监视器。
【代码7】//将当前面板注册为previousMonth按钮的AcitinEvent事件监视器。
JPanel pNorth=new JPanel(),
pSouth=new JPanel();
【代码8】//pNorth添加按钮previousMonth。
【代码9】//pNorth添加按钮nextMonth。
【代码10】// pSouth添加按钮showMessage。
showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );
add(new JScrollPane(table),BorderLayout.CENTER);
add(pNorth,BorderLayout.NORTH);
add(pSouth,BorderLayout.SOUTH);
validate();
}
[color=FF00FF]由于内容过长 ,转下个贴。。。[/color]