日历控件示例Java代码

合集下载

Java万年历源代码,可显示公历、农历、系统时间、国际时间

Java万年历源代码,可显示公历、农历、系统时间、国际时间

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import java.util.TimeZone;public class wannianli extends JFrame implements ActionListener, MouseListener {private Calendar cld = Calendar.getInstance();//获取一个Calendar类的实例对象private String[] astr = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };private DefaultTableModel dtm = new DefaultTableModel(null, astr);private JTable table = new JTable(dtm);private JScrollPane sp = new JScrollPane(table);private JButton bLastYear = new JButton("上一年");private JButton bNextYear = new JButton("下一年");private JButton bLastMonth = new JButton("上月");private JButton bNextMonth = new JButton("下月");private JPanel p1 = new JPanel(); // 设立八个中间容器,装入布局控制日期的按钮模块private JPanel p2 = new JPanel(new GridLayout(3,2));//网格布局private JPanel p3 = new JPanel(new BorderLayout());//边界布局private JPanel p4 = new JPanel(new GridLayout(2,1));private JPanel p5 = new JPanel(new BorderLayout());private JPanel p6 = new JPanel(new GridLayout(2,2));private JPanel p7 = new JPanel(new GridLayout(2,1));private JPanel p8 = new JPanel(new BorderLayout());private JComboBox timeBox = newJComboBox(TimeZone.getAvailableIDs());//对所有支持时区进行迭代,获取所有的id;private JTextField jtfYear = new JTextField(5);// jtfYeaar年份显示输入框private JTextField jtfMonth = new JTextField(2);// jtfMouth月份显示输入框private JTextField timeField=new JTextField();//各城市时间显示框private static JTextArea jta = new JTextArea(10,5);//农历显示区private JScrollPane jsp = new JScrollPane(jta);private JLabel l = new JLabel("花江小精灵:亲!你可以直接输入年月查询.");private JLabel lt = new JLabel();private JLabel ld = new JLabel();private JLabel lu = new JLabel("农历和节气");private JLabel null1=new JLabel();private int lastTime;//private String localTime = null;private String s = null;private SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd 日 hh时mm分ss秒");public wannianli() {super("花江日历过去仅留追忆,未来刚生憧憬,唯有坚守本心,把握今天 ZYT 詹永堂 ");// 框架命名this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 窗口关闭函数this.getContentPane().setLayout(new BorderLayout(9, 10));jta.setLineWrap(true);// 长度大于分配长度时候则换行jta.setFont(new Font("黑体", Font.BOLD, 16));table.setBackground(Color.white);table.setGridColor(Color.pink);// 星期之间的网格线是灰色的table.setBackground(Color.white);table.setColumnSelectionAllowed(true);// 将table中的列设置为可选择的table.setSelectionBackground(Color.pink);// 当选定某一天时背景颜色为黑色table.setSelectionForeground(Color.GREEN);table.setBackground(new Color(184,207, 229));// 日期显示表格为浅蓝色table.setFont(new Font("黑体", Font.BOLD, 24));// 日期数字字体格式table.setRowHeight(26);// 表格的高度table.addMouseListener(this); // 鼠标监听器、lu.setFont(new Font("黑体", Font.BOLD, 22));//农历标签格氏jtfYear.addActionListener(this);// 可输入年份的文本框// 为各个按钮添加监听函数bLastYear.addActionListener(this);bNextYear.addActionListener(this);bLastMonth.addActionListener(this);bNextMonth.addActionListener(this);timeBox.addItemListener(new TimeSelectedChangedListener());// 将按钮添加到Jpane上p1.add(bLastYear);p1.add(jtfYear);// 年份输入文本框p1.add(bNextYear);p1.add(bLastMonth);p1.add(jtfMonth);p1.add(bNextMonth);p3.add(jsp, BorderLayout.SOUTH);p3.add(lu,BorderLayout.CENTER);p3.add(ld, BorderLayout.NORTH);p4.add(lt);p4.add(l);p5.add(p4, BorderLayout.SOUTH);p5.add(sp, BorderLayout.CENTER);p5.add(p1, BorderLayout.NORTH);p6.add(timeBox);p6.add(null1);p6.add(timeField);p8.add(p2,BorderLayout.CENTER);p8.add(p7,BorderLayout.SOUTH);this.getContentPane().add(p3, BorderLayout.EAST);this.getContentPane().add(p5, BorderLayout.CENTER);this.getContentPane().add(p6,BorderLayout.SOUTH);this.getContentPane().add(p8,BorderLayout.WEST);String[] strDate = DateFormat.getDateInstance().format(new Date()) .split("-");// 获取日期cld.set(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1]) - 1,0);showCalendar(Integer.parseInt(strDate[0]),Integer.parseInt(strDate[1]), cld);jtfMonth.setEditable(false);// 设置月份文本框为不可编辑jtfYear.setText(strDate[0]);jtfMonth.setText(strDate[1]);this.showTextArea(strDate[2]);ld.setFont(new Font("新宋体", Font.BOLD, 24));new Timer(lt).start();new TimeThread().start();this.setBounds(200, 200, 700, 350);this.setResizable(false);this.setVisible(true);}public void showCalendar(int localYear, int localMonth, Calendar cld) {int Days = getDaysOfMonth(localYear, localMonth) +cld.get(Calendar.DAY_OF_WEEK) -2;Object [] ai = new Object[7];lastTime = 0;for (int i = cld.get(Calendar.DAY_OF_WEEK)-1; i <= Days; i++) {ai[i%7] =String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-2));if (i%7 == 6){dtm.addRow(ai);ai = new Object[7];lastTime++;}}dtm.addRow(ai);}public int getDaysOfMonth(int Year, int Month) {//计算各月的天数if(Month==1||Month==3||Month==5||Month==7||Month==8||Month==10||Mont h==12){return 31;}if(Month==4||Month==6||Month==9||Month==11){return 30;}if(Year%4==0&&Year%100!=0||Year%400==0)//闰年{return 29;}else {return 28;}}public void actionPerformed(ActionEvent e)//从界面上获取年月数据{if(e.getSource() == jtfYear || e.getSource() == bLastYear || e.getSource() == bNextYear ||e.getSource() == bLastMonth || e.getSource() == bNextMonth){int m, y;try//控制输入的年份正确,异常控制{if (jtfYear.getText().length() != 4){throw new NumberFormatException();}y = Integer.parseInt(jtfYear.getText());m = Integer.parseInt(jtfMonth.getText());}catch (NumberFormatException ex){JOptionPane.showMessageDialog(this, "请输入4位0-9的数字!", "年份有误", JOptionPane.ERROR_MESSAGE);return;}ld.setText("没有选择日期");for (int i = 0; i < lastTime+1; i++){ dtm.removeRow(0);}if(e.getSource() ==bLastYear){ jtfYear.setText(String.valueOf(--y)); }if(e.getSource() ==bNextYear){jtfYear.setText(String.valueOf(++y)); }if(e.getSource() == bLastMonth){if(m == 1){jtfYear.setText(String.valueOf(--y));m = 12;jtfMonth.setText(String.valueOf(m));}else{jtfMonth.setText(String.valueOf(--m));}}if(e.getSource() == bNextMonth){if(m == 12){jtfYear.setText(String.valueOf(++y));m = 1;jtfMonth.setText(String.valueOf(m));}else{jtfMonth.setText(String.valueOf(++m));}}cld.set(y, m-1, 0);showCalendar(y, m, cld);}}public void mouseClicked(MouseEvent e){jta.setText(null);int r = table.getSelectedRow();int c = table.getSelectedColumn();if (table.getValueAt(r,c) == null){ld.setText("没有选择日期");}else{this.showTextArea(table.getValueAt(r,c));}}private void showTextArea(Object selected){ld.setText(jtfYear.getText()+"年"+jtfMonth.getText()+"月"+selected+"日");}public static void main(String[] args){JFrame.setDefaultLookAndFeelDecorated(true);JDialog.setDefaultLookAndFeelDecorated(true);new wannianli();jta.setText(today());}private void updateTimeText(String timeZoneId) {if(timeZoneId != null){TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);dateFormat.setTimeZone(timeZone);Calendar calendar = Calendar.getInstance();calendar.setTimeZone(timeZone);timeField.setText(dateFormat.format(calendar.getTime()));}else{timeField.setText(null);}}private class TimeSelectedChangedListener implements ItemListener { public void itemStateChanged(ItemEvent e) {if (e.getStateChange()==ItemEvent.SELECTED) {if (e.getItem() instanceof String) {s = e.getItem().toString();}}}}private class TimeThread extends Thread{public void run(){while(true){updateTimeText(s);try{Thread.sleep(100);}catch(InterruptedException e){e.printStackTrace();}}}}class Timer extends Thread //显示系统时间{private JLabel lt;private SimpleDateFormat fy = new SimpleDateFormat(" Gyyyy.MM.dd HH:mm:ss ");public Timer(JLabel lt){this.lt=lt;}public void run(){while(true){try{lt.setText(fy.format(new Date()));this.sleep(500);}catch(InterruptedException ex){ex.printStackTrace();}}}}final private static long[] lunarInfo= new long[] { 0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554,0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0,0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550,0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0,0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263,0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0,0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5,0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0,0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0,0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520,0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0 };final private static int[] year20 = new int[] { 1, 4, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };final private static int[] year19 = new int[] { 0, 3, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };final private static int[] year2000 = new int[] { 0, 3, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };public final static String[] nStr1 = new String[] { "", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一","十二" };private final static String[] Gan = new String[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };private final static String[] Zhi = new String[] { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };private final static String[] Animals = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };// 传回农历 y年的总天数final private static int lYearDays(int y) {int i, sum = 348;for (i = 0x8000; i > 0x8; i >>= 1) {if ((lunarInfo[y - 1900] & i) != 0)sum += 1;}return (sum + leapDays(y));}// 传回农历 y年闰月的天数final private static int leapDays(int y) {if (leapMonth(y) != 0) {if ((lunarInfo[y - 1900] & 0x10000) != 0)return 30;elsereturn 29;} elsereturn 0;}// 传回农历 y年闰哪个月 1-12 , 没闰传回 0final private static int leapMonth(int y) {return (int) (lunarInfo[y - 1900] & 0xf);}//传回农历 y年m月的总天数final private static int monthDays(int y, int m) {if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)return 29;elsereturn 30;}// 传回农历 y年的生肖final public static String AnimalsYear(int y) {return Animals[(y - 4) % 12];}//传入月日的offset 传回干支,0=甲子final private static String cyclicalm(int num) {return (Gan[num % 10] + Zhi[num % 12]);}// 传入 offset 传回干支, 0=甲子final public static String cyclical(int y) {int num = y - 1900 + 36;return (cyclicalm(num));}// 传出农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6final private long[] Lunar(int y, int m) {long[] nongDate = new long[7];int i = 0, temp = 0, leap = 0;Date baseDate = new GregorianCalendar(1900 + 1900, 1,31).getTime();Date objDate = new GregorianCalendar(y + 1900, m, 1).getTime();long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;if (y < 2000)offset += year19[m - 1];if (y > 2000)offset += year20[m - 1];if (y == 2000)offset += year2000[m - 1];nongDate[5] = offset + 40;nongDate[4] = 14;for (i = 1900; i < 2050 && offset > 0; i++) {temp = lYearDays(i);offset -= temp;nongDate[4] += 12;}if (offset < 0) {offset += temp;i--;nongDate[4] -= 12;}nongDate[0] = i;nongDate[3] = i - 1864;leap = leapMonth(i); // 闰哪个月nongDate[6] = 0;for (i = 1; i < 13 && offset > 0; i++) {// 闰月if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) { --i;nongDate[6] = 1;temp = leapDays((int) nongDate[0]);} else {temp = monthDays((int) nongDate[0], i);}// 解除闰月if (nongDate[6] == 1 && i == (leap + 1))nongDate[6] = 0;offset -= temp;if (nongDate[6] == 0)nongDate[4]++;}if (offset == 0 && leap > 0 && i == leap + 1) {if (nongDate[6] == 1) {nongDate[6] = 0;} else {nongDate[6] = 1;--i;--nongDate[4];}}if (offset < 0) {offset += temp;--i;--nongDate[4];}nongDate[1] = i;nongDate[2] = offset + 1;return nongDate;}// 传出y年m月d日对应的农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6final public static long[] calElement(int y, int m, int d) {long[] nongDate = new long[7];int i = 0, temp = 0, leap = 0;Date baseDate = new GregorianCalendar(0 + 1900, 0, 31).getTime();Date objDate = new GregorianCalendar(y, m - 1, d).getTime();long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;nongDate[5] = offset + 40;nongDate[4] = 14;for (i = 1900; i < 2050 && offset > 0; i++) {temp = lYearDays(i);offset -= temp;nongDate[4] += 12;}if (offset < 0) {offset += temp;i--;nongDate[4] -= 12;}nongDate[0] = i;nongDate[3] = i - 1864;leap = leapMonth(i); // 闰哪个月nongDate[6] = 0;for (i = 1; i < 13 && offset > 0; i++) {// 闰月if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) { --i;nongDate[6] = 1;temp = leapDays((int) nongDate[0]);} else {temp = monthDays((int) nongDate[0], i);}// 解除闰月if (nongDate[6] == 1 && i == (leap + 1))nongDate[6] = 0;offset -= temp;if (nongDate[6] == 0)nongDate[4]++;}if (offset == 0 && leap > 0 && i == leap + 1) { if (nongDate[6] == 1) {nongDate[6] = 0;} else {nongDate[6] = 1;--i;--nongDate[4];}}if (offset < 0) {offset += temp;--i;--nongDate[4];}nongDate[1] = i;nongDate[2] = offset + 1;return nongDate;}public final static String getChinaDate(int day) { String a = "";if (day == 10)return"初十";if (day == 20)return"二十";if (day == 30)return"三十";int two = (int) ((day) / 10);if (two == 0)a = "初";if (two == 1)a = "十";if (two == 2)a = "廿";if (two == 3)a = "三";int one = (int) (day % 10);switch (one) {case 1:a += "一";break;case 2:a += "二";break;case 3:a += "三";break;case 4:a += "四";break;case 5:a += "五";break;case 6:a += "六";break;case 7:a += "七";break;case 8:a += "八";break;case 9:a += "九";break;}return a;}public static String today() {Calendar today = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE);int year = today.get(Calendar.YEAR);int month = today.get(Calendar.MONTH) + 1;int date = today.get(Calendar.DATE);long[] l = calElement(year, month, date);StringBuffer sToday = new StringBuffer();try {sToday.append(sdf.format(today.getTime()));sToday.append(" \n");sToday.append(" \n");sToday.append(" \n");sToday.append(" 农历");sToday.append(cyclical(year));sToday.append('(');sToday.append(AnimalsYear(year));sToday.append(")年");sToday.append(" \n");sToday.append(" ");sToday.append(nStr1[(int) l[1]]);sToday.append("月");sToday.append(getChinaDate((int) (l[2])));return sToday.toString();} finally {sToday = null;}}private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年M月d日 EEEEE");public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) { }}。

JavaSwing日历控件

JavaSwing日历控件

Java swing日历控件,界面精美,使用方便,能用于个人作品首先,声明一点,这个控件是我从一套据说价值九百多美元的swing类包中提取出来,并加以修改的,所以:
一,你不能把该控件用于任何商业产品中。

二,该控件没有源代码。

(DatePicker.java除外,这个是我加进去的)
三,该控件可以用于你的个人作品中。

截图如下:
使用之前请把datepicker.jar导入classpath中
使用方法如下:
DatePicker datepick = new DatePicker();
或者
datepick = new DatePicker(date,DefaultFormat,font,dimension);//自定义参数值
//各参数含义如下
//参数1 设置该控件的初始值(可选)
//参数2 设置日期的格式(可选)
//参数3 设置该控件的字体(可选)
//参数3 设置该控件的大小(可选)
//该控件继承自JComponent ,它继承了Jcomponent的属性
datepick.setTimePanleVisible(true);//设置时钟面板可见
atepick.setHightlightdays(hilightDays, Color.red);//设置一个月份中需要高亮显示的日子
datepick.setDisableddays(disabledDays);//设置一个月份中不需要的日子,呈灰色显示。

java万年历源代码

java万年历源代码

java万年历源代码第一个类:chaxun.javapackage wannianli;import java.util.*;public class chaxun {public static void main(String[] args) {Scanner input =new Scanner(System.in);String answer="y";for(;answer.equals("y");){week cn=new week();cn.weekDay();//调用方法System.out.print("\是否继续?");answer=input.next();}}}第二个类:tianshu.javapackage wannianli;import java.util.*;public class tianshu {int totalDay;//总共的天数int yueTian;//每月的天数public void jsts(){int days=0;//输入月份到当年的天数System.out.println("*************************************欢迎使用万年历*************************************");Scanner input=new Scanner(System.in);System.out.print("请输入年份:");//从键盘输入年份int year=input.nextInt();System.out.print("请输入月份:");//从键盘输入月份int yue=input.nextInt();/**判断每月的天数*/for(int index=1;index<=yue;index++){if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==1 2){//满足闰年的条件yueTian=31;}elseif(yue==2&&((year%4==0)&&(!(year%100==0))||(year%400== 0))){yueTian=29;}elseif(yue==2&&(!((year%4==0)&&(!(year%100==0))||(year%400= =0)))){yueTian=28;}else if(yue==4||yue==6||yue==9||yue==11){yueTian=30;}else{System.out.print("输入的月份不正确");}if(index<=yue){days=days+yueTian;}}/**判断是否是闰年*/for(int i=100;i<year;i++){< bdsfid="116" p=""></year;i++){<>if ((year%4==0)&&(!(year%100==0))||(year%400==0)){//满足闰年的条件totalDay=totalDay+366;}else{totalDay=totalDay+365;}}totalDay=totalDay+days;//System.out.println(totalDay+"天");//return totalDay+yueTian;}}第三个类:week.jvapackage wannianli;public class week {public void weekDay() {int monDay;//星期几tianshu cn=new tianshu();cn.jsts();int week=1+cn.totalDay%7;//System.out.println(""+week);if (week==7){// 求当月第一天monDay=0;// 周日}else{monDay=week;}/* 输出日历*/System.out.println("星期日\星期一\星期二\星期三\星期四\星期五\星期六");for(int nullNo=0;nullNo<monday;nullno++){< bdsfid="145"p=""></monday;nullno++){<>System.out.print("\");// 输出空格}for(int i=1;i<=cn.yueTian;i++){System.out.print(i+"\");//输出每月的号数if((cn.totalDay + i - 1) % 7 == 5){// 如果当天为周六,输出换行System.out.println();}}} }。

JAVA----日历源代码

JAVA----日历源代码

JAVA----⽇历源代码1:先创建⼀个CalendarBean类:代码:1. import java.util.Calendar;2. public class CalendarBean3. {4. String day[];5. int year=2005,month=0;6. public void setYear(int year)7. {8. this.year=year;9. }10. public int getYear()11. {12. return year;13. }14. public void setMonth(int month)15. {16. this.month=month;17. }18. public int getMonth()19. {20. return month;21. }22. public String[] getCalendar()23. {24. String a[]=new String[42];25. Calendar date=Calendar.getInstance();26. date.set(year,month-1,1);27. int week=date.get(Calendar.DAY_OF_WEEK)-1;28. int day=0;29. //判断⼤⽉份30. if(month==1||month==3||month==5||month==731. ||month==8||month==10||month==12)32. {33. day=31;34. }35. //判断⼩⽉36. if(month==4||month==6||month==9||month==11)37. {38. day=30;39. }40. //判断平年与闰年41. if(month==2)42. {43. if(((year%4==0)&&(year%100!=0))||(year%400==0))44. {45. day=29;46. }47. else48. {49. day=28;50. }51. }52. for(int i=week,n=1;i<week+day;i++)53. {54. a[i]=String.valueOf(n) ;55. n++;56. }57. return a;58. }59. }2:创建⼀个CalendarFrame类import javax.swing.*;public class CalendarFrame extends JFrame implements ActionListener {JLabel labelDay[]=new JLabel[42];JTextField text=new JTextField(10);JButton titleName[]=new JButton[7];JButton button=new JButton();String name[]={"⽇","⼀","⼆","三","四","五","六"};JButton nextMonth,previousMonth;int year=1996,month=1;CalendarBean calendar;JLabel showmessage=new JLabel("",JLabel.CENTER);JLabel lbl1=new JLabel("请输⼊年份:");JLabel lbl2=new JLabel(" ");public CalendarFrame(){JPanel pCenter=new JPanel();//将pCenter的布局设置为7⾏7列的GridLayout布局pCenter.setLayout(new GridLayout(7,7));//pCenter添加组件titleName[i]for(int i=0;i<7;i++){titleName[i]=new JButton(name[i]);pCenter.add(titleName[i]);}//pCenter添加组件LabelDay[i]for(int i=0;i<42;i++){labelDay[i]=new JLabel("",JLabel.CENTER);pCenter.add(labelDay[i]);}text.addActionListener(this);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]);}nextMonth=new JButton("下⽉");previousMonth=new JButton("上⽉");button=new JButton("确定");//注册监听器nextMonth.addActionListener(this);previousMonth.addActionListener(this);button.addActionListener(this);JPanel pNorth=new JPanel(),pSouth=new JPanel();pNorth.add(showmessage);pNorth.add(lbl2);pNorth.add(previousMonth);pNorth.add(nextMonth);pSouth.add(lbl1);pSouth.add(text);pSouth.add(button);showmessage.setText("⽇历"+calendar.getYear()+"年"+calendar.getMonth()+"⽉"); ScrollPane scrollPane=new ScrollPane();scrollPane.add(pCenter);add(scrollPane,BorderLayout.CENTER);//窗⼝添加到ScrollPane 中间位置add(pNorth,BorderLayout.NORTH); //窗⼝添加pNorth在窗⼝北⾯add(pSouth,BorderLayout.SOUTH); //窗⼝添加pSouth在窗⼝的南⾯}public void actionPerformed(ActionEvent e){if(e.getSource()==nextMonth){month+=1;if(month>12)month=1;calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}}else if(e.getSource()==button){month+=1;if(month>12)month=1;calendar.setYear(Integer.parseInt(text.getText()));String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}showmessage.setText("⽇历"+calendar.getYear()+"年"+calendar.getMonth()+"⽉"); }}}3:在创建⼀个CalendarMainClass类代码:import javax.swing.JFrame;import javax.swing.UIManager;public class CalendarMainClass {public static void main(String[]args){try{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e){e.printStackTrace();}CalendarFrame frame=new CalendarFrame();frame.setBounds(100,100,360,300);frame.setTitle("中华⽇历");frame.setLocationRelativeTo(null);//窗体居中显⽰frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}运⾏结果:。

calendarview 用法

calendarview 用法

calendarview 用法CalendarView 是一个展示日历的控件,可以通过在布局文件中使用<CalendarView>标签来添加。

同时还可以通过代码来动态设置属性和监听事件。

以下是一些常用方法和属性的使用方法:1. 设置选中日期的最小值和最大值:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setMinDate(minDate.getTime()); // 设置最小日期calendarView.setMaxDate(maxDate.getTime()); // 设置最大日期```2. 监听日期选中事件:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {@Overridepublic void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {// 处理选中日期的逻辑}});```3. 设置是否显示周数:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setShowWeekNumber(true); // 显示周数calendarView.setShowWeekNumber(false); // 不显示周数```4. 设置选中日期的背景色:```javaCalendarView calendarView = findViewById(R.id.calendarView);// 自定义选中日期的背景calendarView.setDateTextAppearance(R.style.SelectedDateStyle);// 或者使用系统默认的选中背景calendarView.setDateTextAppearance(android.R.style.TextAppear ance_DeviceDefault_Widget_DatePicker_Day_Selected);```5. 获取当前选中的日期:```javaCalendarView calendarView = findViewById(R.id.calendarView); long selectedDate = calendarView.getDate(); // 获取当前选中的日期,单位为毫秒```这些只是 CalendarView 的一些常用方法和属性,还有其他一些属性和方法可以根据需要进行查阅和使用。

java日历编写代码

java日历编写代码

java⽇历编写代码 //Jcalendar.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.SystemColor;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Locale;import java.util.Date;import java.util.StringTokenizer;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.JToggleButton;import javax.swing.SwingConstants;import javax.swing.UIManager;/*** <p>Title: Swing⽇历</p>* <p>Description: 操作⽇期</p>* @author duxu2004* @version 1.0.1*/class JCalendar extends JPanel{//动态表⽰年⽉⽇private int year=0;private int month=0;private int day=0;//主⾯板private JPanel Main = new JPanel();//⽇⾯板private JPanel jPanelDay = new JPanel();//⽉⾯板private JPanel jPanelMonth = new JPanel();//年的输⼊位置private JTextField Year = new JTextField();//⽉的输⼊位置private JTextField Month = new JTextField();//减少⽉份private JButton MonthDown = new JButton();//增加⽉份private JButton MonthUp = new JButton();private JPanel jPanelButton = new JPanel();//减少年份private JButton YearDown = new JButton();//增加年份private JButton YearUp = new JButton();//显⽰⽇期的位置private JLabel Out = new JLabel();//中国时区,以后可以从这⾥扩展可以设置时区的功能private Locale l=Locale.CHINESE;//主⽇历private GregorianCalendar cal=new GregorianCalendar(l);//星期⾯板private JPanel weekPanel=new JPanel();//天按钮组private JToggleButton[] days=new JToggleButton[42];//天⾯板private JPanel Days = new JPanel();//标⽰private JLabel jLabel1 = new JLabel();private JLabel jLabel2 = new JLabel();private JLabel jLabel3 = new JLabel();private JLabel jLabel4 = new JLabel();private JLabel jLabel5 = new JLabel();private JLabel jLabel6 = new JLabel();private JLabel jLabel7 = new JLabel();//当前选择的天数按钮private JToggleButton cur=null;//⽉份天数数组,⽤来取得当⽉有多少天// 1 2 3 4 5 6 7 8 9 10 11 12private int[] mm={31,28,31,30,31,30,31,31,30,31,30,31}; //空⽇期构造函数public JCalendar() {try {jbInit();}catch(Exception e) {e.printStackTrace();}}//带⽇期设置的构造函数public JCalendar(int year, int month, int day) {cal.set(year, month, day);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带⽇历输⼊的构造函数public JCalendar(GregorianCalendar calendar) {cal=calendar;try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带⽇期输⼊的构造函数public JCalendar(Date date) {cal.setTime(date);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//初始化组件private void jbInit() throws Exception {//初始化年、⽉、⽇iniCalender();this.setLayout(new BorderLayout());this.setBorder(BorderFactory.createRaisedBevelBorder()); this.setMaximumSize(new Dimension(200, 200));this.setMinimumSize(new Dimension(200, 200));this.setPreferredSize(new Dimension(200, 200));Main.setLayout(new BorderLayout());Main.setBackground();Main.setBorder(null);Out.setBackground(Color.lightGray);Out.setHorizontalAlignment(SwingConstants.CENTER);Out.setMaximumSize(new Dimension(100, 19));Out.setMinimumSize(new Dimension(100, 19));Out.setPreferredSize(new Dimension(100, 19));jLabel1.setForeground(Color.red);jLabel1.setHorizontalAlignment(SwingConstants.CENTER);jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);jLabel1.setText("⽇");jLabel2.setForeground(Color.blue);jLabel2.setHorizontalAlignment(SwingConstants.CENTER);jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);jLabel2.setText("六");jLabel3.setHorizontalAlignment(SwingConstants.CENTER);jLabel3.setHorizontalTextPosition(SwingConstants.CENTER);jLabel3.setText("五");jLabel4.setHorizontalAlignment(SwingConstants.CENTER);jLabel4.setHorizontalTextPosition(SwingConstants.CENTER);jLabel4.setText("四");jLabel5.setHorizontalAlignment(SwingConstants.CENTER);jLabel5.setHorizontalTextPosition(SwingConstants.CENTER);jLabel5.setText("三");jLabel6.setBorder(null);jLabel6.setHorizontalAlignment(SwingConstants.CENTER);jLabel6.setHorizontalTextPosition(SwingConstants.CENTER);jLabel6.setText("⼆");jLabel7.setBackground(Color.lightGray);jLabel7.setForeground(Color.black);jLabel7.setBorder(null);jLabel7.setHorizontalAlignment(SwingConstants.CENTER);jLabel7.setHorizontalTextPosition(SwingConstants.CENTER);jLabel7.setText("⼀");weekPanel.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient")); weekPanel.setBorder(BorderFactory.createEtchedBorder());weekPanel.setLayout(new GridLayout(1,7));weekPanel.add(jLabel1, null);weekPanel.add(jLabel7, null);weekPanel.add(jLabel6, null);weekPanel.add(jLabel5, null);weekPanel.add(jLabel4, null);weekPanel.add(jLabel3, null);weekPanel.add(jLabel2, null);MonthUp.setAlignmentX((float) 0.0);MonthUp.setActionMap(null);jPanelMonth.setBackground();jPanelMonth.setLayout(new BorderLayout());jPanelMonth.setBorder(BorderFactory.createEtchedBorder());Month.setBorder(null);Month.setHorizontalAlignment(SwingConstants.CENTER);Month.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(MouseEvent e) {Month_mouseClicked(e);}});Month.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(KeyEvent e) {Month_keyPressed(e);}});MonthDown.setBorder(null);MonthDown.setText("\u25C4");MonthDown.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {MonthDown_actionPerformed(e);}});MonthUp.setBorder(null);MonthUp.setText("\u25BA");MonthUp.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {MonthUp_actionPerformed(e);}});jPanelButton.setLayout(null);jPanelButton.setBorder(null);jPanelButton.addComponentListener(new ponentAdapter() { public void componentResized(ponentEvent evt) { jPanelButtonComponentResized(evt);}});Year.setBorder(BorderFactory.createEtchedBorder());Year.setMaximumSize(new Dimension(80, 25));Year.setMinimumSize(new Dimension(80, 25));Year.setPreferredSize(new Dimension(80, 25));Year.setHorizontalAlignment(SwingConstants.CENTER);Year.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(MouseEvent e) {Year_mouseClicked(e);}});Year.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(KeyEvent e) {Year_keyPressed(e);}});YearDown.setBorder(null);YearDown.setMaximumSize(new Dimension(16, 16));YearDown.setMinimumSize(new Dimension(16, 16));YearDown.setPreferredSize(new Dimension(16, 16));YearDown.setSize(new Dimension(16, 16));YearDown.setText("▼");YearDown.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {YearDown_actionPerformed(e);}});YearUp.setBorder(null);YearUp.setMaximumSize(new Dimension(16, 16));YearUp.setMinimumSize(new Dimension(16, 16));YearUp.setPreferredSize(new Dimension(16, 16));YearUp.setSize(new Dimension(16, 16));YearUp.setText("▲");YearUp.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {YearUp_actionPerformed(e);}});jPanelDay.setLayout(new BorderLayout());Days.setLayout(new GridLayout(6,7));Days.setBackground();for(int i=0;i<42;i++){days[i]=new JToggleButton();days[i].setBorder(null);days[i].setBackground();days[i].setHorizontalAlignment(SwingConstants.CENTER);days[i].setHorizontalTextPosition(SwingConstants.CENTER);//days[i].setSize(l,l);days[i].addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(ActionEvent e) {day=Integer.parseInt(((JToggleButton)e.getSource()).getText());showDate();showDays();}});Days.add(days[i]);}this.add(Main, BorderLayout.NORTH);this.add(jPanelDay, BorderLayout.CENTER);this.add(jPanelMonth, BorderLayout.SOUTH);Main.add(Year, BorderLayout.CENTER);Main.add(Out, BorderLayout.WEST);Main.add(jPanelButton, BorderLayout.EAST);jPanelButton.add(YearUp);jPanelButton.add(YearDown);jPanelDay.add(weekPanel,BorderLayout.NORTH);jPanelDay.add(Days, BorderLayout.CENTER);jPanelMonth.add(Month, BorderLayout.CENTER);jPanelMonth.add(MonthDown, BorderLayout.WEST);jPanelMonth.add(MonthUp, BorderLayout.EAST);showMonth();showYear();showDate();showDays();}//⾃定义重画年选择⾯板void jPanelButtonComponentResized(ponentEvent evt){YearUp.setLocation(0,0);YearDown.setLocation(0,YearUp.getHeight());jPanelButton.setSize(YearUp.getWidth(),YearUp.getHeight()*2);jPanelButton.setPreferredSize(new Dimension(YearUp.getWidth(),YearUp.getHeight()*2)); jPanelButton.updateUI();}//测试⽤public static void main(String[] args){JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);f.show();}//增加年份void YearUp_actionPerformed(ActionEvent e) {year++;showYear();showDate();showDays();}//减少年份void YearDown_actionPerformed(ActionEvent e) {year--;showYear();showDate();showDays();}//减少⽉份void MonthDown_actionPerformed(ActionEvent e) {month--;if(month<0) {month = 11;year--;showYear();}showMonth();showDate();showDays();}//增加⽉份void MonthUp_actionPerformed(ActionEvent e) {month++;if(month==12) {month=0;year++;showYear();}showMonth();showDate();showDays();}//初始化年⽉⽇void iniCalender(){year=cal.get(Calendar.YEAR);month=cal.get(Calendar.MONTH);day=cal.get(Calendar.DAY_OF_MONTH);}//刷新⽉份void showMonth(){Month.setText(Integer.toString(month+1)+"⽉");}//刷新年份void showYear(){Year.setText(Integer.toString(year)+"年");}//刷新⽇期void showDate(){Out.setText(Integer.toString(year)+"-"+Integer.toString(month+1)+"-"+Integer.toString(day)); }//重画天数选择⾯板void showDays() {cal.set(year,month,1);int firstDayOfWeek = cal.get(Calendar.DAY_OF_WEEK);int n=mm[month];if(cal.isLeapYear(year)&&month==1) n++;int i=0;for(;i<firstDayOfWeek-1;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}int d=1;for(;d<=n;d++){days[i].setText(Integer.toString(d));days[i].setEnabled(true);if(d==day) days[i].setSelected(true);else days[i].setSelected(false);;i++;}for(;i<42;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}}//单击年份⾯板选择整个年份字符串void SelectionYear(){Year.setSelectionStart(0);Year.setSelectionEnd(Year.getText().length());}//单击⽉份⾯板选择整个⽉份字符串void SelectionMonth(){Month.setSelectionStart(0);Month.setSelectionEnd(Month.getText().length());}//⽉份⾯板响应⿏标单击事件void Month_mouseClicked(MouseEvent e) {//SelectionMonth();inputMonth();}//检验输⼊的⽉份void inputMonth(){String s;if(Month.getText().endsWith("⽉")){s=Month.getText().substring(0,Month.getText().length()-1); }else s=Month.getText();month=Integer.parseInt(s)-1;this.showMe();}//⽉份⾯板键盘敲击事件响应void Month_keyPressed(KeyEvent e) {if(e.getKeyChar()==10)inputMonth();}//年份⾯板响应⿏标单击事件void Year_mouseClicked(MouseEvent e) {//SelectionYear();inputYear();}//年份键盘敲击事件响应void Year_keyPressed(KeyEvent e) {//System.out.print(new Integer(e.getKeyChar()).byteValue()); if(e.getKeyChar()==10)inputYear();}//检验输⼊的年份字符串void inputYear() {String s;if(Year.getText().endsWith("年")){s=Year.getText().substring(0,Year.getText().length()-1); }else s=Year.getText();year=Integer.parseInt(s);this.showMe();}//以字符串形式返回⽇期,yyyy-mm-ddpublic String getDate(){return Out.getText();}//以字符串形式输⼊⽇期,yyyy-mm-ddpublic void setDate(String date){if(date!=null){StringTokenizer f = new StringTokenizer(date, "-");if(f.hasMoreTokens())year = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())month = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())day = Integer.parseInt(f.nextToken());cal.set(year,month,day);}this.showMe();}//以⽇期对象形式输⼊⽇期public void setTime(Date date){cal.setTime(date);this.iniCalender();this.showMe();}//返回⽇期对象public Date getTime(){return cal.getTime();}//返回当前的⽇public int getDay() {return day;}//设置当前的⽇public void setDay(int day) {this.day = day;cal.set(this.year,this.month,this.day);this.showMe();}//设置当前的年public void setYear(int year) {this.year = year;cal.set(this.year,this.month,this.day);this.showMe();}//返回当前的年public int getYear() {return year;}//返回当前的⽉public int getMonth() {return month;}//设置当前的⽉public void setMonth(int month) {this.month = month;cal.set(this.year,this.month,this.day); this.showMe();}//刷新public void showMe(){this.showDays();this.showMonth();this.showYear();this.showDate();}}测试代码JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);// f.show();f.setVisible(true);。

用JAVA编写的日历

用JAVA编写的日历

说明:运行程序后,即可显示当前日期的日历在上面年份和月份下拉列表中选择年份与月份后,点击查询,即可显示相应日期的日历详细实现过程,请看下面代码复制到编译器上即可运行main方法在最下面界面如图所示:import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;/*** 日历显示** @author LW**/public class MyCalendar extends JFrame implements ItemListener, ActionListener {private static final long serialVersionUID = 1L;//版本号private int year; // 年private int month; // 月private JComboBox yearList = new JComboBox(); // 年份下来框private JComboBox monthList = new JComboBox(); // 月份下拉框private JButton jButton = new JButton("查询"); // 查询按钮private JLabel jLabel = new JLabel(); // 日历信息显示标签private JLabel[] labels = new JLabel[49]; // 星期及日期显示标签数组private Calendar calendar = Calendar.getInstance(); // 定义Calendarprivate JLabel timeLabel = new JLabel(); // 时间显示标签private Font font = new Font("宋体", Font.BOLD, 15);private Font font1 = new Font(Font.SANS_SERIF, Font.BOLD, 25);private String selectYear;private String selectMonth;private int indexYear;private int indexMonth;private Container con=getContentPane();//设置内容面板/*** 无参构造方法*/public MyCalendar() {con.setLayout(null);for (int i = 1750,index=0; i <= 2250; i++,index++) {yearList.addItem(i + "年"); // 向年份下拉框中添加年份项if(i==calendar.get(Calendar.YEAR)){indexYear=index;}}for (int i = 0; i < 12; i++) { // 向月份下拉框中添加月份项if (i < 9) { // 保证每个月都是两位数显示,利于提取monthList.addItem("0" + (i+1) + "月");} else {monthList.addItem((i+1) + "月");}if(i==calendar.get(Calendar.MONTH)){indexMonth=i;}}/** setSelectedIndex(int index)* 选择索引index处的项*/yearList.setSelectedIndex(indexYear);monthList.setSelectedIndex(indexMonth);int row = 60; // 定义每个标签的宽度int col = 100; // 定义第一行距离顶部的位置int count = 1;// 计数器for (int i = 0; i < labels.length; i++) { // 初始化每个标签labels[i] = new JLabel();labels[i].setBackground(new Color(200,210,200));labels[i].setOpaque(true);//设置不透明labels[i].setHorizontalAlignment(JLabel.CENTER);//设置标签内容沿X 轴的对齐方式。

一个java Swing做的日历控件

一个java Swing做的日历控件
//设置列顺序不可改变
tbCalendar .getTableHeader().setResizingAllowed(false);
/////设置列大小不可改变
nowDate=new JLabel();
nowDate.setText("今天是:"+gc.get(Calendar.YEAR)+"年"+
public void keyReleased(KeyEvent e) {
super.keyReleased(e);
if(e.getKeyCode()==KeyEvent.VK_ENTER)
btnYearDown=new JButton("▼");
//年份减按钮
btnYearDown.setFont(font);
btnYearDown.setMargin(new Insets(0,0,0,0));
btnYearUp.setBounds(40, 6, 20, 10);
//按钮定位
btnYearDown.setBounds(40, 16, 20, 10);
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
isSelected, boolean hasFocus,
int row, int column) {
Object o=tbCalendar.getValueAt(row,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

日历控件示例Java代码
日历空间示例
使用方法:将其代码复制粘贴进Eclipse或者Myeclipse中,再导入datepicker.jar 包即可,具体使用步骤请参考本人上传的JavaSwing日历控件.doc文件。

package com.shyhao.software;
import java.awt.Color;
import java.awt.Dimension; import java.awt.Font;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import java.util.Locale; import javax.swing.JButton;
import javax.swing.JFrame; import javax.swing.JLabel; import
javax.swing.JTextField; import javax.swing.UIManager;
import ponents.ui.DatePicker;
public class DatePickerWin extends JFrame implements
ActionListener{ //************************************ private DatePicker datepick; private static final String DefaultFormat = \ private Date date=new Date(); private Font font=new Font(\ private Dimension dimension=new Dimension(177,24); private int[] hilightDays={1,3,5,7}; private int[] disabledDays={4,6,5,9}; //************************************ private JTextField txtField; private JTextField valueField; private JButton getButton; /** * Create the frame */ public DatePickerWin() { super();
setTitle(\ getContentPane().setBackground(Color.WHITE);
getContentPane().setLayout(null); setLocationRelativeTo(null);//此句可保证Component位居屏幕中间 setSize(487, 315);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//*********************************************************************
//datepick = new DatePicker(); 全部设为默认值 //datepick = new
DatePicker(date,null,null,null);//自定义参数值 //datepick = new
DatePicker(date,DefaultFormat,null,dimension);//自定义参数值 //datepick = new DatePicker(null,DefaultFormat,null,dimension);//自定义参数值 //各参数含
义如下 //参数1 设置该控件的初始值(可选) //参数2 设置日期的格式
(可选) //参数3 设置该控件的字体(可选) //参数3 设置该控件的大小
(可选) //该控件继承自JComponent ,它继承了Jcomponent的属性 datepick = new DatePicker(date,DefaultFormat,font,dimension);//自定义参数值
//datepick.setLocation(137, 83); datepick.setBounds(137, 83, 177, 24); datepick.setHightlightdays(hilightDays, Color.red);//设置一个月份中需要高亮显
示的日子 datepick.setDisableddays(disabledDays);//设置一个月份中不需要的日子,呈灰色显示 datepick.setLocale(Locale.CHINA);//设置国家
datepick.setTimePanleVisible(true);//设置时钟面板可见
getContentPane().add(datepick);
//****************************************************************************
***** valueField = new JTextField(); valueField.setBounds(137, 138, 177, 21); getContentPane().add(valueField); txtField = new JTextField(); txtField.setBounds(137, 187, 177, 21); getContentPane().add(txtField); getButton = new JButton(); getButton.addActionListener(this);
getButton.setText(\ getButton.setBounds(10, 163, 64, 23); getContentPane().add(getButton); final JLabel valueLabel = new JLabel(); valueLabel.setText(\ valueLabel.setBounds(88, 141, 43, 15);
getContentPane().add(valueLabel); final JLabel txtLabel = new JLabel(); txtLabel.setText(\ txtLabel.setBounds(96, 190, 35, 15);
getContentPane().add(txtLabel); // } public void
actionPerformed(ActionEvent e) { //*************************************** Date date=(Date)datepick.getValue(); String txt=datepick.getText(); valueField.setText(date.toString()); txtField.setText(txt);
//************************************** } /** * Launch the application * * @param args */ public static void main(String args[]) { try { UIManager.setLookAndFeel(\Windows外观 } catch (Exception e) {}
}
}
DatePickerWin frame = new DatePickerWin(); frame.setVisible(true);
感谢您的阅读,祝您生活愉快。

相关文档
最新文档