Android培訓要求

來源:互聯網
上載者:User
黑馬程式員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();
    }
}

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.