程知识,但是原來总是觉得java要注意的点非常多,难以把握,容易出错,并没有看到java 的强大力量。在系统学习java后解决了原來没有理解的很筋问题,可以说有老师的指导对 java知识的理解更容易抓住重点,系统的学习从易到姬。
在做这个程序的过程中遇到了很多问题,比如从开始就为怎样实现界而那些组件发愁, 一位要口己编代码实现,一点头绪都没有,最后下了一个JBukier才发现这个组件java都提 供了,只需直接引入使用就好了,这才体会到Java真是强大呢,java的API就是我们可以 求助的老师。
然后就足文中提到的两个主耍的函数,这里说明不是我H己匝头到尾編出来的,但是为 T结合在程序里还是花了很多的功夫,衔接,理解运行机制等。当然我做了改动,理解了这 两个函数也是一个很大的收获.
最后,对比Windows时间和日期对话框的界而设计,看得出來还是有-?定的出入,这 一方面是因为java 用Windows API生成的图形还是有些差异,另一方面就是自己jaw布 局管理的使用还是不熟练,不能完全控制组件的显示方式和位置o还有就是面向对象设计意 识还不够,代码重用性比较差,代码兀长。H己对这个程序做的还是比较的满意的,自己劳 动的成果。
附录
import java .a wt.*;
import JavQ.text.DateFormatSymbols; import javQ.util.*;
import java.awt.ewnt?;
import ja 詬 xswi ng』;
import javQxswi ng.event.Cha ngeE 辰 nt;
import javaxswi ng?eve nt.Cha nge Listener;
import java.text.*;
import java.applet.Applet;
publicdassdate implements RunnablezActionListenerjtemListener,ChangeListener
Frame f; Graphics g=null; JPanel p; Can归s hl; JPanel plzp2j33/p4/pp/ppl;// ...................................................................... // JSpinnersl; Panel xlzx2; TextField tl=new 7extField()zt2=new TextField();; Thread thl; JButton bl=new JButtonf* 确定 \; JButton b2=new JButton(” 取消 ”); JButton b3=new JButlon(”应用(A)\Gridla\\outla\\out=newGridla\\out(7?7/10/10); Choice \\earzm on th; JLabel []label=new JLabel[49]; String weekDay[]={H 日罗 一罗 二罗 三T P屮」 五丁 六°}; String月W—月罗二月罗三月丁四月罗五月罗六月丁七月丁八月丁九月丁十月叮十一月V十二 月\int Y=2008,M=12; Color color=new Colo4231,232,255); int lastxs=O; int lastvs=O/iastym=Ozlastxni=OJastym=OJastxh=O/lastyh=O; intflag=0;11
SpinnerNumberModel model 3 = new SpinnerNumberModel (2008z 1800, 3000, 1); date()
flag=l;
)
catch(Exception e)
{
System.out.pri nt(e.toString());
}
voidinitl()
f=new Framef时间
和日期 屈性”);
f?setSize(400, 330);
f.setVisible(true);
g=f.getGraphics();
pl=new JPanel();
p2=new JPanel();
pp=new JPanel(); ppl=new JPanel();
tl.setlextf'gaoshenme dongxiH);
f.setlayout(new BorderLayout());
p23etBorder(BorderFactorv.createTitledBorder(M时何(T〉”)); pp5etla\\out(new GridLa\\out(lz2));
pp^dd(pl)ppadd(p2);
f.addfpp/'Center\
f.add (ppi, “South”);
intiplO;
f.setVisible(true);
thl=new Thread();
intip2Q;
b3^etEnabled(false);
f.setResizable(false);
f.addWi ndowlistene r(new ProcessO);
}
voidintipl()
pl^etlayout(new GridLayout(3,l));
month=new Choice();
for(inti=Oj<12j++) month .add(jy[i]);// 下拉的添加部分的参数可为字符串 monthselectC b二月”);//当前的月份初始化为10月份 month addltemlistener( this);
month^etForeground(Color.blue); p4=new JPanel(); p4setLayout(new Flowlayout()); p4^dd(month); pl3dd(p4); plsetBorder(BorderFactory.createTitledBorderCBJ9J (D) ”)); p4setBorder(BorderFactory.createTitledBorderCM')); si = new JSpinner(model3); model 3^dd Change Listener( this); p4add(sl); p3=new JPanel(new GridLayout(7,7,l,:l));〃 // pl 刀 dd(p3); p3^etBorder( Bo rderFactory.createTitled Borde r(n\// for(inti=0j<7;++) { I a bel[i] =new JLabel( week Da ; //label Conte n tAreaRlled(false); label[i]setFont(newFont(”楷体?GB2312JFont?BOLDJ2)); label[i]5etFocusable(true);
java课程设计-Windows系统时间属性模拟



