zoukankan      html  css  js  c++  java
  • Android培训要求

    黑马程序员Android视频教程_前言
    黑马程序员Android视频教程_搭建Android开发环境
    黑马程序员Android视频教程_创建与启动手机模拟器和学习使用ANDROID操作系统
    黑马程序员Android视频教程_开发与运行(卸载)第一个ANDROID应用
    黑马程序员Android视频教程_项目的目录结构与安装及启动过程分析
    黑马程序员Android视频教程_电话拔号器
    黑马程序员Android视频教程_查看应用输出的错误信息与如何部署应用到真实手机
    黑马程序员Android视频教程_短信发送器
    黑马程序员Android视频教程_深入了解各种布局技术
    黑马程序员Android视频教程_对应用进行单元测试
    黑马程序员Android视频教程_查看与输出日志信息
    黑马程序员Android视频教程_文件的保存与读取
    黑马程序员Android视频教程_文件的操作模式
    黑马程序员Android视频教程_把文件存放在SDCard
    黑马程序员Android视频教程_采用Pull解析器解析和生成XML内容
    黑马程序员Android视频教程_采用SharedPreferences保存用户偏好设置参数
    黑马程序员Android视频教程_创建数据库与完成数据添删改查
    黑马程序员Android视频教程_在SQLite中使用事务
    黑马程序员Android视频教程_采用ListView实现数据列表显示
    黑马程序员Android视频教程_采用ContentProvider对外共享数据
    黑马程序员Android视频教程_监听ContentProvider中数据的变化
    黑马程序员Android视频教程_访问通信录中的联系人和添加联系人
    黑马程序员Android视频教程_网络通信之网络图片查看器
    黑马程序员Android视频教程_网络通信之网页源码查看器
    黑马程序员Android视频教程_网络通信之资讯客户端
    黑马程序员Android视频教程_采用JSON格式返回数据给资讯客户端
    黑马程序员Android视频教程_网络通信之通过GET和POST方式提交参数给web应用
    黑马程序员Android视频教程_网络通信之通过HTTP协议实现文件上传
    黑马程序员Android视频教程_发送xml数据和调用webservice
    黑马程序员Android视频教程_多线程下载原理
    黑马程序员Android视频教程_多线程断点下载器
    黑马程序员Android视频教程_文件断点上传器
    黑马程序员Android视频教程_为应用添加多个Activity与参数传递
    黑马程序员Android视频教程_Activity的启动模式
    黑马程序员Android视频教程_Intent深入解剖
    黑马程序员Android视频教程_Activity生命周期
    黑马程序员Android视频教程_采用广播接收者实现短信qie听器
    黑马程序员Android视频教程_采用广播接收者拦截外拔电话及其特性
    黑马程序员Android视频教程_采用Service实现电话qie听器
    黑马程序员Android视频教程_建立能与访问者进行相互通信的本地服务
    黑马程序员Android视频教程_使用AIDL实现进程通信
    黑马程序员Android视频教程_服务的生命周期
    黑马程序员Android视频教程_音乐播放器
    黑马程序员Android视频教程_在线视频播放器
    黑马程序员Android视频教程_拍照
    黑马程序员Android视频教程_视频刻录
    黑马程序员Android视频教程_手势识别
    黑马程序员Android视频教程_实现软件国际化
    黑马程序员Android视频教程_屏幕适配
    黑马程序员Android视频教程_样式与主题
    黑马程序员Android视频教程_编码实现软件界面
    黑马程序员Android视频教程_发送状态栏通知
    黑马程序员Android视频教程_采用网页设计软件界面
    黑马程序员Android视频教程_tween动画
    黑马程序员Android视频教程_frame动画的实现
    黑马程序员Android视频教程_activity切换动画与页面切换动画
    黑马程序员Android视频教程_采用方向传感器实现指南针

     http://edu.csdn.net/heima/heimaline.html

     package com.wiworld.thinkingjava.worldclock;


    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.geom.Line2D;
    import java.util.Date;
    import java.util.TimeZone;

    import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.JTextField;

    import sun.awt.HorizBagLayout;

    public class ClockFrame extends JFrame {

        private static final int WIDTH = 600;
        private static final int HEIGHT = 600;
     
        final JPanel panel = new JPanel();
        
        private static final String places[] = {"E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","E11","E12",
                                                "W12","W11","W10","W9","W8","W7","W6","W5","W4","W3","W2","W1"};
        
     
        
        private boolean bolFirstDraw = true;
        
        public ClockFrame() {
            
            initData();
            
            Container contentContainer = getContentPane();
            
     
            
            panel.setBackground(new Color(0x909090));
            contentContainer.add(panel, BorderLayout.CENTER);
            

            
            JButton startButton = new JButton("    Start Draw    ");
            contentContainer.add(startButton, BorderLayout.SOUTH);
     
            startButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent event) { 
             
                    bolFirstDraw = true;
     
                    initData();
                    new Thread(){
                        public void run() {
                           while(true/*index<TIMES*/){
     
                                    try {
                                        Thread.sleep(1000);
                                        bolFirstDraw = true;
                                    } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                   
                                    draw(panel.getGraphics());
                                     
    //                                index++;
     
                           }
     
                        }
                    }.start();
                }
            });
            
            setSize(WIDTH, HEIGHT+100);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
        }
        
        private void initData(){
     
        }
        
     
        
        public void draw(Graphics g) {
     
            if(g==null){
                System.out.println("Panel.paint.Graphics is null ");
                return;
            }
    //        if(bolFirstDraw){
    //            g.clipRect(0,0,WIDTH, HEIGHT);
    //            g.clearRect(0,0,WIDTH,HEIGHT);
    //            g.setColor(new Color(0x909090));
    //            g.fillRect(0, 0, WIDTH, HEIGHT);
    //        }
         

            
    //draw chess base

            if(bolFirstDraw){
                bolFirstDraw = false;
                int startX = 50;
                int startY = 50;
                int clockW = 500;
                int clockH = 500;
                int arcAngle = 360;
                int size = 24;
                
                int startOffset = 50;
                int clockOffset = -startOffset*2;
                
                int sectionAngle = arcAngle/size;
                
                Date today = new Date();
                int hour = today.getHours();
                int min  = today.getMinutes();
                int second = today.getSeconds();
                int timeZone = today.getTimezoneOffset()/60;
     
                int currentTimeAngle = timeZone*360/24 + hour*360/24+ min*sectionAngle/60;
                
     
               
                //draw time zone
                for(int i=0;i<size;i++){
                    if(i%2==0){
                       g.setColor(Color.black);
                    }else{
                       g.setColor(Color.white);
                    }
     
                    g.fillArc(startX, startY, clockW, clockH, i*sectionAngle,sectionAngle);

                    
                }
     
                //draw world zone
                for(int i=0;i<size;i++){
                    if(i%2==0){
                        g.setColor(Color.red);
                    }else{
                        g.setColor(Color.blue);
                    }
                    g.fillArc(startX+startOffset, startY+startOffset, clockW+clockOffset, clockH+clockOffset, i*sectionAngle+currentTimeAngle, sectionAngle);
                }
                
     
                
                //draw 24 time 
                for(int i=0;i<size;i++){
                    g.setColor(Color.green);
                    g.drawString(""+(i+1), (int) (startX+clockW/2+clockW/2*Math.sin(i*sectionAngle*Math.PI/180)), (int) (startY+clockH/2+clockH/2*Math.cos(i*sectionAngle*Math.PI/180) ));
                }
                
                //draw 24 place
                for(int i=0;i<size;i++){
                    g.setColor(Color.pink);
                    g.drawString(places[i], (int) (startX+startOffset+(clockW+clockOffset)/2+(clockW+clockOffset)/2*Math.sin((i*sectionAngle+currentTimeAngle)*Math.PI/180)), (int) (startY+startOffset+(clockH+clockOffset)/2+(clockH+clockOffset)/2*Math.cos((i*sectionAngle+currentTimeAngle)*Math.PI/180) ));
                }
                
                g.setColor(Color.yellow);
    //            g.fillArc(startX+startOffset, startY+startOffset, clockW+clockOffset, clockH+clockOffset, second*6, 1);
                g.drawLine(startX+startOffset+(clockW+clockOffset)/2,startY+startOffset+(clockH+clockOffset)/2, (int) (startX+startOffset+(clockW+clockOffset)/2+(clockW+clockOffset)/2*Math.sin((-second*6)*Math.PI/180)), (int) (startY+startOffset+(clockH+clockOffset)/2+(clockH+clockOffset)/2*Math.cos((-second*6)*Math.PI/180) ));
            }
            
     
            
            
            g.clipRect(0,0,WIDTH, HEIGHT);
        }
        
     
        
     
     


        private int getRandomX() {
            return (int) (Math.random() * WIDTH);
        }

        private int getRandomY() {
            return (int) (Math.random() * HEIGHT);
        }

        private int getRandomWidth() {
            return (int) (Math.random() * (WIDTH / 7));
        }

        private int getRandomHeight() {
            return (int) (Math.random() * (HEIGHT / 7));
        }

     

        public static void main(String[] args) {
            ClockFrame client = new ClockFrame();
        }
    }
  • 相关阅读:
    青云黄允松:2016年是云计算市场最关键的一年
    知道创宇CTO杨冀龙:网络安全人才决定行业格局
    su 与 su
    如何进入单用户模式(CentOS6.9)
    在虚拟机中还原GHO镜像系统
    安装CentOS 7 文字版
    把typora改为微软雅黑+Consolas
    使用python操作文件实现购物车程序
    使用python操作json文本文件
    资源下载网址集合
  • 原文地址:https://www.cnblogs.com/bluespot/p/2112303.html
Copyright © 2011-2022 走看看