下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9、万年历要求:使用图形用户界面。实现日期与星期的查询import java.awt.*;import java.awt.event.*;import java.text.*;import java.util.*;import javax.swing.*;import javax.swing.table.*; public class testl extends JFrame implements ActionListener private Calendar cal = Calendar. getInstance ();private String 口 str = "星期一&quo
2、t;,"星期二","星期三","星期四","星期五"," 星期六","星期日"private JTable table = new JTable( dtm);private DefaultTableModel dtm = new DefaultTableModel( null , str );privateJButtonbLastYear = new JButton("上一年");privateJButtonbNextYear = new JButton(
3、"下一年");privateJButtonbLastMonth = new JButton("上月");privateJButtonbNextMonth = new JButton("下月");privateJTextFieldYear = new JTextField(4);/jtfYear年份显示和输入文本privateJLabeljla =new JLabel("年");privateJTextFieldmonth = new JTextField(4);privateJLabeljla1 =new JLab
4、el("月");privateJTextFieldjtfMonth = new JTextField(2);/jtfMonth月份显示文本框privateJPanelp1 = new JPanel();/装入控制日期按钮的模块privateJPanelp2 = new JPanel();privateJPanelp3 = new JPanel( new BorderLayout();privateJPanelp4 = new JPanel( new GridLayout(2,1);privateJPanelp5 = new JPanel( new BorderLayout(
5、);privateJLabell = new JLabel("文本框中可直接键入要查找的年份,以提高查询效率privateJLabellt = new JLabel();/装日期的表格private JScrollPane sp = new JScrollPane( table ););private int lastTimepublic test1()EXIT_ON_CLOSE); 窗口关闭函数 new BorderLayout(10, 0);super ("万年历");/框架命名this .setDefaultCloseOperation(JFrame.thi
6、s .getContentPane().setLayout(table .setGridC010r(Color.GRAY;/星期之间的网格线是灰色的table .setColumnSelectionAllowed(true );table .setSelectionBackground(Color.BLACK); /当选定某一天时这一天背景黑table .setSelectionForeground(Color.GREEN; / 选定的日期字体是绿色的table .setBackground( new Color(184,207,229);/ 日期显示表格颜色浅蓝色table .setFont
7、( new Font("黑体",Font. BOLD24);/ 日期数字字体格式table .setRowHeight(30); / 表格的高度Year .addActionListener( this ); / 可输入年份的文本框 month .addActionListener( this ); / 可输入年份的文本框/为各个按钮添加监听函数bLastYear .addActionListener(this );bNextYear .addActionListener(this );bLastMonth .addActionListener(this );bNextMo
8、nth .addActionListener(this );/将按钮添加到Jpanel上p1 .add( p1 .add( p1 .add( p1 .add(bLastYear );Year); /年份输入文本框 jla );month ); /年份输入文本框SOUTH);SOUTH);CENTER;NORTH);p5 , BorderLayout.CENTER;p3 , BorderLayout.EAST);p1 .add( jla1 ); p1 .add( bNextYear ); p1 .add( bLastMonth ); p1 .add( jtfMonth ); p1 .add( b
9、NextMonth ); p3.add( p2, BorderLayout. p4.add( l ); p4.add( lt );p5.add( p4, BorderLayout. p5.add( sp, BorderLayout. p5.add( p1 , BorderLayout.this .getContentPane().add( this .getContentPane().add(String 口 strDate = DateFormat.Date().split( "-" ); / 获得日期getDateInstance ().format( newparse
10、Int (strDate0), cal );false ); /设置月份的文本框为不可编辑Integer. parseInt (strDate1)-1,cal .set(Integer. parseInt (strDate0),0);showCalendar(Integer.Integer. parseInt (strDate1),jtfMonth .setEditable(Year .setText(strDate0);month .setText(strDate1);jtfMonth .setText(strDate1);new Timer( lt ).start();this .setB
11、ounds(200,200,600,320);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 Object7;lastTime = 0;for ( int i = cld.get(Calendar.DAY
12、_OF_WEEK)-1; i <= Days; i+)aii%7 = String.valueOf (i-(cld.get(Calendar.DAY_OF_WEEK)-2);if (i%7 = 6)dtm .addRow(ai);ai =new Object7;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
13、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;elsereturn 28;public void actionPerformed(ActionEvent e)if (e.getSource() = Year | e.getSource() = bLastYear | e.getSource() = bNextYear |e.getSource()
14、 =bLastMonth | e.getSource() =bNextMonth )int m, y;try / 控制输入的年份正确,异常控制if ( Year .getText().length() != 4) throw new NumberFormatException();y = Integer.parseInt( Year .getText();m = Integer.parseInt( jtfMonth .getText();catch (NumberFormatException ex)JOptionPane.showMessageDialog ( this , " 请
15、输入 4位 0-9 的数字!" , " 年份有误 " , JOptionPane. ERROR_MESSAG)E;return ;lastTime +1; i+) dtm .removeRow(0);valueOf (-y); valueOf (+y); bLastMonth )for ( int i = 0; i <if (e.getSource() = bLastYear ) Year .setText(String.if (e.getSource() = bNextYear ) Year .setText(String.if (e.getSource(
16、) =if (m = 1)Year .setText(String. valueOf (-y);m = 12;jtfMonth .setText(String. valueOf (m);elsevalueOf (-m);jtfMonth .setText(String.if (e.getSource() = bNextMonth )if (m = 12)Year .setText(String. valueOf (+y);m = 1;jtfMonth .setText(String. valueOf (m);elsejtfMonth .setText(String. valueOf (+m);
17、cal .set(y, m-1, 0);showCalendar(y, m,cal );month .setText(String. valueOf (m);public static void main(String args)JFrame. setDefaultLookAndFeelDecorated ( true );JDialog. setDefaultLookAndFeelDecorated ( true ); new test1(); class Timer extends Thread / 显示系统时间 privateJLabel lt ;privateSimpleDateFormatfy =new SimpleDateFormat(HH:mm:ss z");privateSimpleDateFormatfn =new SimpleDateFormat("yyyy.MM.dd G 'at'"yyyy.MM.dd G 'at' HHmm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年集体土地租赁承包合同范本
- 个人装修合同2024年
- 个人场地租赁合同书2024年
- 2024年贵州客运应用能力考试题库
- 2024年济南客运资格证考几个科目考试
- 2024年重庆客运驾驶从业资格证考试题库及答案
- 2024年张家界申请客运从业资格证模拟考试
- 2024年辽宁客运资格从业证考试内容是什么意思
- 2024年工程资料员岗位职责
- 2024年电子商务产业园入驻合同范本
- 2025高考一轮复习:15位古代名人传记文言文挖空练习高考语文文言文备考总复习(全国)
- 2024-2030年中国电表行业发展分析及投资前景预测研究报告
- 供应链管理师技能竞赛理论考试题及答案
- 2024年部编新改版语文小学一年级上册期中考试检测题(有答案)
- GB/T 44109-2024信息技术大数据数据治理实施指南
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- 广东省清远市英德市2023-2024学年八年级上学期期中物理试题
- 部编人教版五年级数学上册《【全册】完整版》精品PPT教学课件
- 横格-硬笔书法纸模板(可打印)
- (完整版)水利工程质量监督检查记录表汇总表
- 铝压铸基础培训ppt课件
评论
0/150
提交评论