版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、import javax.swing.*; /时钟import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.*;import java.util.Calendar;import java.util.GregorianCalendar;class Clock extends JFrame implements ActionListener int x,y,x0,y0,r,h,olds_x,olds_y,oldm_x,oldm_y,oldh_x,oldh_y,ss,mm,hh,old
2、_m,old_h,ang; final double RAD=Math.PI/180; /度数转换成弧度的比例 /构造函数创建了一个窗体 public Clock() super(时钟); /设置标题 setSize(250,250); /设置窗口尺寸 setBackground(Color.WHITE); /设置背景颜色 setLocation(300,150); /设置窗口位置坐标 setResizable(false); /使窗口可以最小化和关闭,但是不能任意改变大小 setVisible(true); /设置组建可见 int delay = 100; /设置延时 /创建一个监听事件 A
3、ctionListener drawClock = new ActionListener() public void actionPerformed(ActionEvent evt) repaint(); ; new Timer(delay,drawClock).start(); /创建时间计数器,每秒触发一次 public void actionPerformed(ActionEvent e)/实现ActionListener接口必须实现的方法 /绘制图形 public void paint(Graphics g) Graphics2D g2D = (Graphics2D)g; Insets
4、 insets = getInsets(); int L = insets.left/2,T = insets.top/2; h = getSize().height; g.setColor(Color.black); /画圆 g2D.setStroke(new BasicStroke(4.0f); g.drawOval(L+40,T+40,h-80,h-80); r=h/2-40; x0=40+r-5+L; y0=40+r-5-T; ang=60; /绘制时钟上的12个数字 for(int i=1;i=12;i+) x=(int)(r-9)*Math.cos(RAD*ang)+x0); y=
5、(int)(r-9)*Math.sin(RAD*ang)+y0); g.drawString(+i,x,h-y); ang-=30; /获得当前系统时间 Calendar now= new GregorianCalendar(); int nowh= now.get(Calendar.HOUR_OF_DAY); int nowm= now.get(Calendar.MINUTE); int nows= now.get(Calendar.SECOND); String st; if(nowh10) st=0+nowh;else st=+nowh; if(nowm10) st+=:0+nowm;e
6、lse st+=:+nowm; if(nows0) g.setColor(getBackground(); g.drawLine(x0,y0,olds_x,h-olds_y); Else old_m = mm; old_h = hh; /绘制秒针 x=(int)(r*0.9*Math.cos(RAD*ss)+x0;/长度 y=(int)(r*0.9*Math.sin(RAD*ss)+y0-2*T; g.setColor(Color.black);/指针颜色 g.drawLine(x0,y0,x,h-y);/轨迹 olds_x=x; olds_y=y; g2D.setStroke(new Bas
7、icStroke(2.2f);/分针粗细 /擦除分针 if(old_m!=mm) g.setColor(getBackground(); g.drawLine(x0,y0,oldm_x,h-oldm_y); /绘制分针 x=(int)(r*0.7*Math.cos(RAD*mm)+x0;/长度 y=(int)(r*0.7*Math.sin(RAD*mm)+y0-2*T; g.setColor(Color.red);/颜色 g.drawLine(x0,y0,x,h-y); oldm_x=x; oldm_y=y; old_m=mm; g2D.setStroke(new BasicStroke(3.
8、4f);/时针粗细 /擦除时针 if(old_h!=hh) g.setColor(getBackground(); g.drawLine(x0,y0,oldh_x,h-oldh_y); /绘制时针 x=(int)(r*0.5*Math.cos(RAD*hh)+x0;/长度 y=(int)(r*0.5*Math.sin(RAD*hh)+y0-2*T; g.setColor(Color.red);/颜色 g.drawLine(x0,y0,x,h-y); oldh_x=x; oldh_y=y; old_h=hh; public static void main(String args) Clock
9、c = new Clock(); 3Dimport java.applet.Applet;import java.awt.BorderLayout;import com.sun.j3d.utils.applet.MainFrame;import com.sun.j3d.utils.geometry.*;import com.sun.j3d.utils.universe.*;import javax.media.j3d.*;import javax.vecmath.*;import com.sun.j3d.utils.behaviors.mouse.MouseRotate;import com.
10、sun.j3d.utils.behaviors.mouse.MouseZoom;import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;public class AWTFrameJ3D private static final long serialVersionUID = 1L; Canvas3D cv = null; public static void main(String s) AWTFrameJ3D hd = new AWTFrameJ3D(); hd.constractJava3D(); /*构造方法 创建Frame和Can
11、vas3D画布对象,并将Canvas3D嵌入到Frame中*/ public AWTFrameJ3D() GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); GraphicsEnvironment env = GraphicsEnvironment .getLocalGraphicsEnvironment(); GraphicsDevice device = env.getDefaultScreenDevice(); GraphicsConfiguration config = device.getBestCo
12、nfiguration(template); / 新建Canvas3D对象,Canvas3D对象是一个用于显示虚拟世界场景的绘制结果的画布 cv = new Canvas3D(config); / 新建Frame对象 Frame dframe = new Frame(config); dframe.setTitle(模型读取中); dframe.setLayout(new BorderLayout(); / 将Canvas3D对象嵌入到Frame对象中 dframe.add(cv, BorderLayout.CENTER); dframe.setSize(500, 400); / 添加窗口监听
13、器实现关闭窗口(Frame),关闭窗口时退出程序 dframe.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent ev) System.out.print(退出程序!); System.exit(0); ; / 使用Toolkit更改Java应用程序标题栏默认图标 Toolkit tk = Toolkit.getDefaultToolkit(); Image image = tk.createImage(images/earth.jpg); /* image.gif是你的图标 */ dfram
14、e.setIconImage(image); / 使用Toolkit把默认的鼠标图标改成指定的图标: / Toolkit tk=Toolkit.getDefaultToolkit(); Image img = tk.getImage(images/earth.jpg); /* mouse.gif是你的图标 */ Cursor cu = tk.createCustomCursor(img, new Point(10, 10), stick); dframe.setCursor(cu); / 现将Frame窗口可视化之后,再绘制3D场景内容 dframe.setVisible(true); /*构
15、建3D虚拟世界场景*/ public void constractJava3D() / 创建场景图分支 BranchGroup bg = createSceneGraph(); pile(); / 将观察分支关联到一个Canvas3D对象,以显示视图的绘制结果 SimpleUniverse su = new SimpleUniverse(cv); su.getViewingPlatform().setNominalViewingTransform(); / 把场景图关联到SimpleUniverse对象之后,整个场景就开始绘制了 su.addBranchGraph(bg); / 现
16、绘制3D场景内容,再将Frame窗口可视化 / dframe.setVisible(true); /*创建3D场景内容*/ private BranchGroup createSceneGraph() / 创建BranchGroup对象作为根节点 BranchGroup root = new BranchGroup(); / object Appearance ap = new Appearance(); ap.setMaterial(new Material(); Font3D font = new Font3D(new Font(SansSerif, Font.PLAIN, 1), new FontExtrusion(); Text3D text = new Text3D(font, Hello 3D); Shape3D shape = new Shape3D(text, ap); / transformation Transform3D tr = new Transform3D(); tr.setScale(0.5); tr.setTranslation(new Vector3f(-0.95f, -0.2f, 0f); TransformGroup tg = new TransformGroup(tr); root.addC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉安市吉安县2027届数学四年级第一学期期末质量检测试题含解析
- 2025年黑龙江省肇东市高二生物下册期末考试模拟试卷及答案(新)
- 2026年河北省沙河市高二生物下册期末考试模拟检测卷含答案【完整版】
- 2025年海南省万宁市高考历史考试卷含完整答案(全优)
- 2026年山西省古交市高二生物上册期末考试检测卷含答案(夺分金卷)
- 2025年山东省诸城市高二生物上册期末考试检测卷【名师系列】附答案
- 2025年湖南省韶山市高二生物下册期末考试模拟测试卷附完整答案(名校卷)
- 2025年江西省共青城市高二历史上册期末考试试卷(达标题)附答案
- 2025年山东省诸城市高二生物上册期末考试测试卷附完整答案【全优】
- 2026年江苏省太仓市高二历史上册期末考试检测卷附完整答案【易错题】
- 2026年黄山市公共交通有限公司招聘3名笔试备考题库及答案详解
- 2026年海南高考化学试卷真题及答案详解(精校打印版)
- 国家电网公文写作与申论专项突破涵盖通知、通报、纪要、调研报告等常考文种含15篇批注版范文
- 《中华人民共和国生态环境法典》深度培训
- 2026年证券公司营业部总经理竞聘管理能力面试问题含答案
- T∕CNLIC 0218-2025 乳源酵母菌、乳酸菌发酵型含乳饮料 奶啤
- 服装订货会策划方法
- 上海市奉贤区2025-2026学年高三上学期一模语文试卷(含答案)
- 中国心血管健康与疾病报告(2024年)要点解读课件
- 生命教育主体班会课件
- 《旅游管理专业介绍》课件
评论
0/150
提交评论