黑马程序员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

packagecom.wiworld.thinkingjava.worldclock;


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

importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JSplitPane;
importjavax.swing.JTextField;

importsun.awt.HorizBagLayout;

public classClockFrame extendsJFrame{

private static final intWIDTH=600;
private static final intHEIGHT=600;

finalJPanelpanel= newJPanel();

private static finalStringplaces[]={"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 booleanbolFirstDraw= true;

publicClockFrame(){

initData();

ContainercontentContainer=getContentPane();



panel.setBackground( newColor(0x909090));
contentContainer.add(panel,BorderLayout.CENTER);



JButtonstartButton= newJButton("StartDraw");
contentContainer.add(startButton,BorderLayout.SOUTH);

startButton.addActionListener( newActionListener(){
public voidactionPerformed(ActionEventevent){

bolFirstDraw= true;

initData();
newThread(){
public voidrun(){
while( true /* index<TIMES */){

try{
Thread.sleep(1000);
bolFirstDraw= true;
} catch(InterruptedExceptione){
// TODOAuto-generatedcatchblock
e.printStackTrace();
}

draw(panel.getGraphics());

// index++;

}

}
}.start();
}
});

setSize(WIDTH,HEIGHT+100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible( true);
}

private voidinitData(){

}



public voiddraw(Graphicsg){

if(g== null){
System.out.println("Panel.paint.Graphicsisnull");
return;
}
// if(bolFirstDraw){
// g.clipRect(0,0,WIDTH,HEIGHT);
// g.clearRect(0,0,WIDTH,HEIGHT);
// g.setColor(newColor(0x909090));
// g.fillRect(0,0,WIDTH,HEIGHT);
// }


// drawchessbase

if(bolFirstDraw){
bolFirstDraw= false;
intstartX=50;
intstartY=50;
intclockW=500;
intclockH=500;
intarcAngle=360;
intsize=24;

intstartOffset=50;
intclockOffset=-startOffset*2;

intsectionAngle=arcAngle/size;

Datetoday= newDate();
inthour=today.getHours();
intmin=today.getMinutes();
intsecond=today.getSeconds();
inttimeZone=today.getTimezoneOffset()/60;

intcurrentTimeAngle=timeZone*360/24+hour*360/24+min*sectionAngle/60;



// drawtimezone
for( inti=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);


}

// drawworldzone
for( inti=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);
}



// draw24time
for( inti=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)));
}

// draw24place
for( inti=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 intgetRandomX(){
return( int)(Math.random()*WIDTH);
}

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

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

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



public static voidmain(String[]args){
ClockFrameclient= newClockFrame();
}
}

更多相关文章

  1. android开发资源汇总
  2. android开发资源汇总
  3. 传智播客android 视频课程列表
  4. Android程序员必备精品资源
  5. 程序员有必要拥有一台自己的云服务器吗?为什么?
  6. 表格制作excel教程,excel表格制作教程入门,自学excel视频教程全
  7. 程序员,你具备这些架构师的能力模型吗
  8. 想要成为一名优秀的Java程序员,你需要这8个锦囊
  9. 其它行业半路转web前端,优势和不足有哪些?

随机推荐

  1. Activity的AsyncTask请求
  2. Android--fragment从activity中获取数据
  3. SwitchButton自定义开关
  4. 如何在iPhone的后台播放视频?
  5. Android(安卓)使用Parcelable接口
  6. Android第十五天 ContentProvider之Conte
  7. Android按返回键退出程序的两种方式
  8. android 之 3G/gprs
  9. android MediaPlayer和VideoView的使用
  10. android in practice_Displaying splash