📄 calendarframe.java
字号:
/**
* @(#)CalendarBean.java
*
*
* @author
* @version 1.00 2007/11/11
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import javax.swing.tree.*;
import javax.swing.event.*;
class CalendarBean {
int year=2005,month=0,nextDay;
public void setYear(int year) {
this.year=year;
}
public void setMonth(int month) {
this.month=month;
}
public String[][] getCalendar() {
String a[][]=new String[6][7];
Calendar cal=Calendar.getInstance();
cal.set(year,month-1,1);
int week=cal.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;
}
nextDay=1;
for(int k=0; k<6; k++)
{ if (k==0)
for (int j=week; j<7; j++)
{
a[k][j]=" "+nextDay;
nextDay++;
}
else
for (int j=0; j<7 && nextDay<=day; j++)
{
a[k][j]=" "+nextDay;
nextDay++;
}
}
return a;
}
}
public class CalendarFrame extends JFrame implements ItemListener,TreeSelectionListener {
JTable table;
JTree tree=null;
DefaultMutableTreeNode root;
Object name[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
JComboBox yearList;
int year,month;
CalendarBean calendar;
String rili[][];
String item[]={"2006","2007","2008","2009","2010"};
JScrollPane scrollTable,scrollTree;
JSplitPane split;
public CalendarFrame() {
calendar=new CalendarBean();
yearList=new JComboBox();
for (int k=0; k<item.length; k++)
yearList.addItem(item[k]);
yearList.addItemListener(this);
root=new DefaultMutableTreeNode(item[0]);
year=Integer.parseInt(item[0]);
month=1;
DefaultMutableTreeNode months[]=new DefaultMutableTreeNode[13];
for (int i=1; i<=12; i++) {
months[i]=new DefaultMutableTreeNode(""+i);
root.add(months[i]);
}
tree=new JTree(root);
add(new JScrollPane(tree),BorderLayout.WEST);
tree.addTreeSelectionListener(this);
calendar.setYear(year);
calendar.setMonth(month);
rili=calendar.getCalendar();
table=new JTable(rili,name);
scrollTree=new JScrollPane(tree);
scrollTable=new JScrollPane(table);
split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollTree,scrollTable);
split.setDividerLocation(0.5);
add(yearList,BorderLayout.NORTH);
add(split,BorderLayout.CENTER);
setSize(600,200);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent e) {
String yr=yearList.getSelectedItem().toString().trim();
year=Integer.parseInt(yr);
calendar.setYear(year);
root=new DefaultMutableTreeNode(yr);
DefaultMutableTreeNode months[]=new DefaultMutableTreeNode[13];
for (int i=1; i<=12; i++) {
months[i]=new DefaultMutableTreeNode(""+i);
root.add(months[i]);
}
split.remove(scrollTree);
tree=new JTree(root);
tree.addTreeSelectionListener(this);
scrollTree=new JScrollPane(tree);
split.add(scrollTree,JSplitPane.LEFT);
validate();
}
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode monthNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if (monthNode.isLeaf())
{
month=Integer.parseInt(monthNode.toString().trim());
calendar.setMonth(month);
rili=calendar.getCalendar();
split.remove(scrollTable);
table=new JTable(rili,name);
scrollTable=new JScrollPane(table);
split.add(scrollTable,JSplitPane.RIGHT);
validate();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new CalendarFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -