Java使用图形用户界面万年历_第1页
Java使用图形用户界面万年历_第2页
Java使用图形用户界面万年历_第3页
Java使用图形用户界面万年历_第4页
Java使用图形用户界面万年历_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论