i-world-i-dream

 

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();
    }
}

 

 

posted on 2011-07-21 05:13  exce4  阅读(734)  评论(26编辑  收藏  举报

导航