windows日历时钟文档格式.docx

上传人:b****4 文档编号:18031401 上传时间:2022-12-13 格式:DOCX 页数:12 大小:52.29KB
下载 相关 举报
windows日历时钟文档格式.docx_第1页
第1页 / 共12页
windows日历时钟文档格式.docx_第2页
第2页 / 共12页
windows日历时钟文档格式.docx_第3页
第3页 / 共12页
windows日历时钟文档格式.docx_第4页
第4页 / 共12页
windows日历时钟文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

windows日历时钟文档格式.docx

《windows日历时钟文档格式.docx》由会员分享,可在线阅读,更多相关《windows日历时钟文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

windows日历时钟文档格式.docx

JPaneltimeArea=newJPanel();

//Internet时间

JPanelinternetTime=newJPanel();

//创建属性页tabbedPane

JTabbedPanetabbedPane=newJTabbedPane();

tabbedPane.addTab("

时间和日期"

dt);

时区"

timeArea);

Internet时间"

internetTime);

tabbedPane.setSelectedIndex(0);

//设置默认版位第一版

getContentPane().add(tabbedPane,BorderLayout.CENTER);

//把属性页加到frame中去

}

publicstaticvoidmain(String[]args){

JFrame.setDefaultLookAndFeelDecorated(true);

JFrameframe=newmain0();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setVisible(true);

frame.setSize(400,250);

}

Rili.java

importjava.awt.event.*;

importjava.util.*;

importjavax.swing.event.*;

importjavax.swing.table.*;

publicclassriliextendsJApplet{

/*定义全局变量*/

publicstaticfinalColorbackground=Color.white;

//背景色

publicstaticfinalColorforeground=Color.black;

//前景色

publicstaticfinalColorheaderBackground=Color.DARK_GRAY;

//星期

publicstaticfinalColorheaderForeground=Color.white;

//星期前景色

publicstaticfinalColorselectedBackground=Color.blue;

//选中背景色

publicstaticfinalColorselectedForeground=Color.white;

//选中前景色

publicstaticfinalStringWeekSun="

日"

;

//星期标签名称

publicstaticfinalStringWeekMon="

一"

publicstaticfinalStringWeekTue="

二"

publicstaticfinalStringWeekWed="

三"

publicstaticfinalStringWeekThu="

四"

publicstaticfinalStringWeekFri="

五"

publicstaticfinalStringWeekSat="

六"

privateJPanelMainPanel;

//日历面板

privateJLabelyearsLabel;

//“年份”标签

privateJSpinneryearsSpinner;

//年份组合框

privateJLabelmonthsLabel;

//“月份”标签

privateJComboBoxmonthsComboBox;

//12月份下拉框

privateJLabelInfoLabel;

//信息显示标签

privateJTabledaysTable;

//日表格

privateAbstractTableModeldaysModel;

//天单元表格

privateCalendarcalendar;

//日历对象

/*函数定义*/

publicrili(){//构造函数

MainPanel=(JPanel)getContentPane();

publicvoidinit(){//初始化面板界面函数

MainPanel.setLayout(newBorderLayout());

calendar=Calendar.getInstance();

//默认方式,以本地的时区和地区来构造Calendar

yearsLabel=newJLabel("

年"

//设置年份标签显示

yearsSpinner=newJSpinner();

//构造年份spinner组合框

yearsSpinner.setEditor(newJSpinner.NumberEditor(yearsSpinner,"

0000"

));

yearsSpinner.setValue(newInteger(calendar.get(Calendar.YEAR)));

yearsSpinner.addChangeListener(newChangeListener(){//注册该组合框的事件监听器

publicvoidstateChanged(ChangeEventchangeEvent){

intday=calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,1);

calendar.set(Calendar.YEAR,((Integer)yearsSpinner.getValue()).intValue());

intmaxDay=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,day>

maxDay?

maxDay:

day);

updateView();

//更新显示

);

//--------------------------------------

monthsComboBox=newJComboBox();

//月份下拉框

monthsLabel=newJLabel("

月"

//设置月份标签显示

for(inti=1;

i<

=12;

i++){//构造下拉框的12个月份

monthsComboBox.addItem(newInteger(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));

//下拉框当前月份为选中状态

monthsComboBox.addActionListener(newActionListener(){//注册月份下拉框的事件监听器

publicvoidactionPerformed(ActionEventactionEvent){

calendar.set(Calendar.MONTH,monthsComboBox.getSelectedIndex());

//更新面板显示

});

InfoLabel=newJLabel("

当前时区:

中国标准时间"

JPanelyearMonthPanel=newJPanel();

//定义年月面板

MainPanel.add(yearMonthPanel,BorderLayout.NORTH);

//添加年月面板到日历面板的南面(最上方)

MainPanel.add(InfoLabel,BorderLayout.SOUTH);

yearMonthPanel.setLayout(newBorderLayout());

//边布局模式

JPanelyearPanel=newJPanel();

//构建年份面板

yearMonthPanel.add(yearPanel,BorderLayout.WEST);

//年份面板添加到年月面板西部(左边)

yearPanel.setLayout(newBorderLayout());

//设置年份面板为边布局并添加年份标签和组合框

yearPanel.add(yearsLabel,BorderLayout.EAST);

yearPanel.add(yearsSpinner,BorderLayout.CENTER);

//--------------------------------------

JPanelmonthPanel=newJPanel();

//定义月份面板

yearMonthPanel.add(monthPanel,BorderLayout.EAST);

//添加月份面板到年月面板的东面(右边)

monthPanel.setLayout(newBorderLayout());

//月份面板设为边布局方式

monthPanel.add(monthsLabel,BorderLayout.EAST);

//添加月份名称标签到月份面板西面(左边)

monthPanel.add(monthsComboBox,BorderLayout.CENTER);

//添加月份下拉框到月份面板中间

JPaneltxetPanel=newJPanel();

//定义标题文本显示面板

yearMonthPanel.add(txetPanel,BorderLayout.CENTER);

//添加标题文本显示面板到年月面板中间

daysModel=newAbstractTableModel(){//设置7行7列

publicintgetRowCount(){

return7;

publicintgetColumnCount(){

publicObjectgetValueAt(introw,intcolumn){

if(row==0){//第一行显示星期

returngetHeader(column);

row--;

Calendarcalendar=(Calendar)rili.this.calendar.clone();

intdayCount=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

intmoreDayCount=calendar.get(Calendar.DAY_OF_WEEK)-1;

intindex=row*7+column;

intdayIndex=index-moreDayCount+1;

if(index<

moreDayCount||dayIndex>

dayCount){

returnnull;

}else{

returnnewInteger(dayIndex);

};

daysTable=newCalendarTable(daysModel,calendar);

//构造日表格

daysTable.setCellSelectionEnabled(true);

//设置表格单元格可选择

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0),newTableCellRenderer(){

publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,

booleanhasFocus,introw,intcolumn){

Stringtext=(value==null)?

"

"

:

value.toString();

JLabelcell=newJLabel(text);

cell.setOpaque(true);

//绘制边界内的所有像素

if(row==0){//第一行显示星期,设置为星期的前景色和背景色

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

}else{

if(isSelected){//日期单元格如果选中,则设置为日期选中的前、背景色

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

}else{//设置日期单元格的普通前、背景色

cell.setForeground(foreground);

cell.setBackground(background);

returncell;

MainPanel.add(daysTable,BorderLayout.CENTER);

//添加日面板到日历面板中间

//--------------------------------------

publicstaticStringgetHeader(intindex){//设置第一行星期的显示

switch(index){

case0:

returnWeekSun;

case1:

returnWeekMon;

case2:

returnWeekTue;

case3:

returnWeekWed;

case4:

returnWeekThu;

case5:

returnWeekFri;

case6:

returnWeekSat;

default:

publicvoidupdateView(){//更新面板显示方法

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),

calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK)-1,

calendar.get(Calendar.DAY_OF_WEEK)-1);

publicstaticclassCalendarTableextendsJTable{//表格类

privateCalendarcalendar;

publicCalendarTable(TableModelmodel,Calendarcalendar){//构造方法

super(model);

this.calendar=calendar;

publicvoidchangeSelection(introw,intcolumn,booleantoggle,booleanextend){//选择表格单元格时

super.changeSelection(row,column,toggle,extend);

if(row==0){//选择为第一行(星期)时不改变单元格

return;

Objectobj=getValueAt(row,column);

if(obj!

=null){

calendar.set(Calendar.DAY_OF_MONTH,((Integer)obj).intValue());

Clock.java

importjava.text.*;

publicclassClockextendsJPanelimplementsRunnable{

privateJLabeljl;

privateDateFormatdf;

publicClock(){

jl=newJLabel();

jl.setHorizontalAlignment(JLabel.CENTER);

df=DateFormat.getDateTimeInstance();

newThread(this).start();

this.setLayout(newBorderLayout());

this.add(jl,BorderLayout.SOUTH);

}

publicvoidrun(){

while(true){

try{

Thread.sleep(1000);

catch(InterruptedExceptionie){

ie.printStackTrace();

jl.setText(df.format(newDate()));

repaint();

publicvoidpaintComponent(Graphicsg){

super.paintComponent(g);

Calendarcal=Calendar.getInstance();

//得到当前的时间信息

inthour=cal.get(Calendar.HOUR);

intminute=cal.get(Calendar.MINUTE);

intsecond=cal.get(Calendar.SECOND);

//得到当前的面板的大小信息

intwidth=this.getWidth();

intheight=this.getHeight();

//钟的那个圆盘取两个之中小的那个

intsmall=width<

height?

width:

height;

intdiameter=(int)(small*0.8);

intradius=diameter/2;

//确定中心点

Pointcenter=newPoint(width/2,height/2);

//确定时针,分钟,秒针的长度

intsecondLength=(int)(radius*0.8);

intminuteLength=(int)(secondLength*0.8);

inthourLength=(int)(minuteLength*0.8);

//确定时针,分针,秒针的另一端坐标

intsecondX=center.x+(int)(secondLength*Math.sin(second*2*Math.PI/60.0));

intsecondY=center.y-(int)(secondLength*Math.cos(second*2*Math.PI/60.0));

intminuteX=center.x+(int)(minuteLength*Math.sin(minute*2*Math.PI/60.0));

intminuteY=center.y-(int)(minuteLength*Math.cos(minute*2*Math.PI/60.0));

inthourX=center.x+(int)(hourLength*Math.sin((minute/60.0+hour)*Math.PI/6.0));

inthourY=center.y-(int)(hourLength*Math.cos((minute/60.0+hour)*Math.PI/6.0));

Graphics2Dg2d=(Graphics2D)g;

//画表盘和刻度

g.drawOval(center.x-radius,center.y-radius,dia

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

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

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