




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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杭州科技职业技术学院辅导员招聘笔试真题
- 1.食品安全地方标准立项建议书(式样)
- 2023.06.21夏至一阴初升
- 2025年陕西省国家综合性消防救援队伍招聘考试试题【答案】
- 2025年湿簧式继电器项目发展计划
- 北京海淀区社区工作者招聘笔试真题2024
- 2025年昭通市昭阳区龙泉街道办事处选拔社区后备干部考试试题【答案】
- 2025年产后健康项目发展计划
- 消防专项方案
- 理财顾问实习报告范文-1
- 招商大使选聘管理办法
- 智慧教育基于大数据的个性化教学研究与实践
- 2025年中国铁路集团招聘笔试备考题库(带答案详解)
- 用工风险培训课件
- 海外现场安全健康环境管理(HSE)
- 2025年公安机关人民警察(行政执法)资格考试(客观题及刑法)含答案
- DB3502∕T 166-2024 既有厂区及老旧小区海绵城市方案设计导则
- 2025年 江西省金控科技产业集团有限公司招聘考试笔试试卷附答案
- 四川省成都市蓉城联盟2024-2025学年高一下学期6月期末考试物理试题(含答案)
- 2025年中国模内标签(IML)行业市场全景分析及前景机遇研判报告
- 【人教版】吉林长春2024-2025学年 五年级下学期期末数学试题【附答案】
评论
0/150
提交评论