ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:52.29KB ,
资源ID:5071879      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5071879.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(windows日历时钟.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

windows日历时钟.docx

1、windows日历时钟综 合 考 查题目: Windows日历时钟软件 姓名: 学号: 成绩: 日期: 2011-01-5 源代码文件名:Main0.javaimport java.awt.*;import javax.swing.*;public class main0 extends JFrame private static final long serialVersionUID = 1L; public main0() super(时间 日期); /时间和日期 JPanel dt=new JPanel(); /创建面板 dt.setLayout(new GridLayout(); /网

2、格布局管理器 rili x=new rili(); x.init(); dt.add(x); dt.add(new Clock(); /时区 JPanel timeArea=new JPanel(); /Internet时间 JPanel internetTime=new JPanel(); /创建属性页tabbedPane JTabbedPane tabbedPane=new JTabbedPane(); tabbedPane.addTab(时间和日期, dt); tabbedPane.addTab(时区, timeArea); tabbedPane.addTab(Internet时间, i

3、nternetTime); tabbedPane.setSelectedIndex(0); /设置默认版位第一版 getContentPane().add(tabbedPane,BorderLayout.CENTER); /把属性页加到frame中去 public static void main(String args) JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame=new main0(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack()

4、; frame.setVisible(true); frame.setSize(400,250); 文件名:Rili.javaimport java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;public class rili extends JApplet /*定义全局变量*/ public static final Color background = Color.white;/背景色

5、public static final Color foreground = Color.black;/前景色 public static final Color headerBackground = Color.DARK_GRAY;/星期 public static final Color headerForeground = Color.white;/星期前景色 public static final Color selectedBackground = Color.blue;/选中背景色 public static final Color selectedForeground = Col

6、or.white;/选中前景色 public static final String WeekSun = 日; /星期标签名称 public static final String WeekMon = 一; public static final String WeekTue = 二; public static final String WeekWed = 三; public static final String WeekThu = 四; public static final String WeekFri = 五; public static final String WeekSat =

7、 六; private JPanel MainPanel;/日历面板 private JLabel yearsLabel;/“年份” 标签 private JSpinner yearsSpinner;/年份组合框 private JLabel monthsLabel;/“月份” 标签 private JComboBox monthsComboBox; /12月份下拉框 private JLabel InfoLabel;/信息显示标签 private JTable daysTable; /日表格 private AbstractTableModel daysModel;/天单元表格private

8、 Calendar calendar;/日历对象/*函数定义*/ public rili() /构造函数 MainPanel = (JPanel) getContentPane(); public void init() /初始化面板界面函数 MainPanel.setLayout(new BorderLayout(); calendar = Calendar.getInstance(); /默认方式,以本地的时区和地区来构造Calendar yearsLabel = new JLabel(年 ); /设置年份标签显示 yearsSpinner = new JSpinner();/构造年份sp

9、inner组合框 yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, 0000); yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR); yearsSpinner.addChangeListener(new ChangeListener() /注册该组合框的事件监听器 public void stateChanged(ChangeEvent changeEvent) int day = calendar.get(Calendar.DAY_OF_MON

10、TH); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.YEAR, (Integer) yearsSpinner.getValue().intValue(); int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, day maxDay ? maxDay : day); updateView(); /更新显示 ); /- monthsComboBox = new JComboB

11、ox(); /月份下拉框 monthsLabel = new JLabel(月 ); /设置月份标签显示 for (int i = 1; i maxDay ? maxDay : day); updateView();/更新面板显示 ); /- InfoLabel=new JLabel(当前时区:中国标准时间); JPanel yearMonthPanel = new JPanel(); /定义年月面板 MainPanel.add(yearMonthPanel, BorderLayout.NORTH);/添加年月面板到日历面板的南面(最上方) MainPanel.add(InfoLabel, B

12、orderLayout.SOUTH); yearMonthPanel.setLayout(new BorderLayout();/边布局模式 JPanel yearPanel = new JPanel(); /构建年份面板 yearMonthPanel.add(yearPanel, BorderLayout.WEST);/年份面板添加到年月面板西部(左边) yearPanel.setLayout(new BorderLayout();/设置年份面板为边布局并添加年份标签和组合框 yearPanel.add(yearsLabel, BorderLayout.EAST); yearPanel.ad

13、d(yearsSpinner, BorderLayout.CENTER); /- JPanel monthPanel = new JPanel();/定义月份面板 yearMonthPanel.add(monthPanel, BorderLayout.EAST);/添加月份面板到年月面板的东面(右边) monthPanel.setLayout(new BorderLayout();/月份面板设为边布局方式 monthPanel.add(monthsLabel, BorderLayout.EAST);/添加月份名称标签到月份面板西面(左边) monthPanel.add(monthsComboB

14、ox, BorderLayout.CENTER);/添加月份下拉框到月份面板中间 /- JPanel txetPanel = new JPanel();/定义标题文本显示面板 yearMonthPanel.add(txetPanel,BorderLayout.CENTER);/添加标题文本显示面板到年月面板中间 daysModel = new AbstractTableModel() /设置7行7列 public int getRowCount() return 7; public int getColumnCount() return 7; public Object getValueAt(

15、int row, int column) if (row = 0) /第一行显示星期 return getHeader(column); row-; Calendar calendar = (Calendar) rili.this.calendar.clone(); calendar.set(Calendar.DAY_OF_MONTH, 1); int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1; in

16、t index = row * 7 + column; int dayIndex = index - moreDayCount + 1; if (index dayCount) return null; else return new Integer(dayIndex); ; daysTable = new CalendarTable(daysModel, calendar); /构造日表格 daysTable.setCellSelectionEnabled(true);/设置表格单元格可选择 daysTable.setSelectionMode(ListSelectionModel.SING

17、LE_SELECTION); daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) String text = (value = null) ? : value.toString(); JLabel cell = new

18、JLabel(text); cell.setOpaque(true); /绘制边界内的所有像素 if (row = 0) /第一行显示星期,设置为星期的前景色和背景色 cell.setForeground(headerForeground); cell.setBackground(headerBackground); else if (isSelected) /日期单元格如果选中,则设置为日期选中的前、背景色 cell.setForeground(selectedForeground); cell.setBackground(selectedBackground); else /设置日期单元格

19、的普通前、背景色 cell.setForeground(foreground); cell.setBackground(background); return cell; ); updateView(); MainPanel.add(daysTable, BorderLayout.CENTER);/添加日面板到日历面板中间 /- public static String getHeader(int index) /设置第一行星期的显示 switch (index) case 0: return WeekSun; case 1: return WeekMon; case 2: return We

20、ekTue; case 3: return WeekWed; case 4: return WeekThu; case 5: return WeekFri; case 6: return WeekSat; default: return null; public void updateView() /更新面板显示方法 daysModel.fireTableDataChanged();daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH), calendar.get(Calendar.WEEK_OF_MONTH

21、);daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK) - 1,calendar.get(Calendar.DAY_OF_WEEK) - 1); public static class CalendarTable extends JTable /表格类 private Calendar calendar; public CalendarTable(TableModel model, Calendar calendar) /构造方法 super(model); this.calendar = calend

22、ar; public void changeSelection(int row, int column, boolean toggle, boolean extend) /选择表格单元格时 super.changeSelection(row, column, toggle, extend); if (row = 0) /选择为第一行(星期)时不改变单元格 return; Object obj = getValueAt(row, column); if (obj != null) calendar.set(Calendar.DAY_OF_MONTH, (Integer)obj).intValue

23、(); 文件名:Clock.javaimport java.awt.*; import javax.swing.*; import java.util.*; import java.text.*; public class Clock extends JPanel implements Runnable private JLabel jl; private DateFormat df; public Clock() jl=new JLabel(); jl.setHorizontalAlignment(JLabel.CENTER); df=DateFormat.getDateTimeInstan

24、ce(); new Thread(this).start(); this.setLayout(new BorderLayout(); this.add(jl,BorderLayout.SOUTH); public void run() while(true) try Thread.sleep(1000); catch(InterruptedException ie) ie.printStackTrace(); jl.setText(df.format(new Date(); repaint(); public void paintComponent(Graphics g) super.pain

25、tComponent(g); Calendar cal=Calendar.getInstance(); /得到当前的时间信息 int hour=cal.get(Calendar.HOUR); int minute=cal.get(Calendar.MINUTE); int second=cal.get(Calendar.SECOND); /得到当前的面板的大小信息 int width=this.getWidth(); int height=this.getHeight(); /钟的那个圆盘取两个之中小的那个 int small=widthheight?width:height; int dia

26、meter=(int)(small*0.8); int radius=diameter/2; /确定中心点 Point center=new Point(width/2,height/2); /确定时针,分钟,秒针的长度 int secondLength=(int)(radius*0.8); int minuteLength=(int)(secondLength*0.8); int hourLength=(int)(minuteLength*0.8); /确定时针,分针,秒针的另一端坐标 int secondX=center.x+(int)(secondLength*Math.sin(seco

27、nd*2*Math.PI/60.0); int secondY=center.y-(int)(secondLength*Math.cos(second*2*Math.PI/60.0); int minuteX=center.x+(int)(minuteLength*Math.sin(minute*2*Math.PI/60.0); int minuteY=center.y-(int)(minuteLength*Math.cos(minute*2*Math.PI/60.0); int hourX=center.x+(int)(hourLength*Math.sin(minute/60.0+hour)*Math.PI/6.0); int hourY=center.y-(int)(hourLength*Math.cos(minute/60.0+hour)*Math.PI/6.0); Graphics2D g2d=(Graphics2D)g; /画表盘和刻度 g.drawOval(center.x-radius,center.y-radius,dia

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1