成都创新互联网站制作重庆分公司

java圆形钟表代码 java简单时钟代码及详细解释

java输入时间显示钟表;要求输入一个时分秒,输出一个静态的钟表,显示你输入的时间。

按照你的要求编写的java输入时间显示钟表的程序如下:

成都创新互联公司专注于寿县企业网站建设,自适应网站建设,购物商城网站建设。寿县网站建设公司,为寿县等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

import java.awt.BorderLayout;import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Clock extends JFrame implements ActionListener{ JLabel jl_hour=new JLabel("时");

JLabel jl_minute=new JLabel("分");

JLabel jl_second=new JLabel("秒");

JTextField jtf_hour=new JTextField(10);

JTextField jtf_minute=new JTextField(10);

JTextField jtf_second=new JTextField(10);

JButton jb_input=new JButton("显示");

JPanel jp_input=new JPanel();

ClockPanel jp_clock=new ClockPanel();

Clock(){

super("Clock");

jb_input.addActionListener(this);

jp_input.add(jtf_hour);jp_input.add(jl_hour);

jp_input.add(jtf_minute);jp_input.add(jl_minute);

jp_input.add(jtf_second);jp_input.add(jl_second);

jp_input.add(jb_input);

add(jp_input,BorderLayout.NORTH);

add(jp_clock,BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(600,400);

this.setLocationRelativeTo(null);

setVisible(true);

}

public static void main(String[] args) {

new Clock();

}

public void actionPerformed(ActionEvent ae) {

if(ae.getSource()==jb_input){

int Hour=Integer.parseInt(jtf_hour.getText());

int Minute=Integer.parseInt(jtf_minute.getText());

int Second=Integer.parseInt(jtf_second.getText());

jp_clock.setHour(Hour);

jp_clock.setMinute(Minute);

jp_clock.setSecond(Second);

jp_clock.repaint();

}

}

}

class ClockPanel extends JPanel {

private double CenterX,CenterY;

private double Radius=150;

private double HPointX,HPointY,MPointX,MPointY,SPointX,SPointY;

private int Hour,Minute,Second;

private final double PI=3.1415926;

public int getHour() {

return Hour;

}

public void setHour(int hour) {

Hour = hour;

}

public int getMinute() {

return Minute;

}

public void setMinute(int minute) {

Minute = minute;

}

public int getSecond() {

return Second;

}

public void setSecond(int second) {

Second = second;

}

ClockPanel(){

this.Hour=0;

this.Minute=0;

this.Second=0;

}

ClockPanel(int Hour,int Minute,int Second){

this.Hour=Hour;

this.Minute=Minute;

this.Second=Second;

}

public void paintComponent(Graphics g){

super.paintComponent(g);

CenterX=this.getWidth()/2;

CenterY=this.getHeight()/2;

double HRadian=(PI/6)*Hour+(PI/360)*Minute+(PI/21600)*Second;

double MRadian=(PI/30)*Minute+(PI/1800)*Second;

double SRadian=(PI/30)*Second;

HPointX=CenterX+Radius*0.6*Math.sin(HRadian);

HPointY=CenterY-Radius*0.6*Math.cos(HRadian);

MPointX=CenterX+Radius*0.8*Math.sin(MRadian);

MPointY=CenterY-Radius*0.8*Math.cos(MRadian);

SPointX=CenterX+Radius*Math.sin(SRadian);

SPointY=CenterY-Radius*Math.cos(SRadian);

g.drawOval((int)(CenterX-Radius), (int)(CenterY-Radius), (int)(2*Radius),(int)(2*Radius));

g.drawString("12",(int)(CenterX),(int)(CenterY-Radius)+10);

g.drawString("3",(int)(CenterX+Radius)-6 , (int)(CenterY));

g.drawString("6", (int)(CenterX), (int)(CenterY+Radius));

g.drawString("9",(int)(CenterX-Radius), (int)(CenterY));

g.drawLine((int)(CenterX), (int)(CenterY), (int)(SPointX), (int)(SPointY));

g.drawLine((int)(CenterX), (int)(CenterY), (int)(MPointX), (int)(MPointY));

g.drawLine((int)(CenterX), (int)(CenterY), (int)(HPointX), (int)(HPointY));

}

}

怎样用java制作一个钟表类?

public class Horologe{

private int hour;

private int minute;

private int second;

public void setTime(int hour,int minute,int second){ //设置时间的方法

this.hour = hour; //传进的参数赋值给成员变量

this.minute = minute;

this.second = second;

}

public String showTime(){ //显示时间的方法

return "小时:"+hour+" 分钟:"+minute+" 秒: "+second;

}

}

希望能够帮到你

java编程利用按钮实现时钟的停止和开始功能(原代码)

如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.Timer;

import java.awt.geom.*;

import java.util.*;

class Clock extends Canvas

implements ActionListener{

static  JButton jb=new JButton("开始");

static JButton jb1=new JButton("暂停");

Date date;

Timer secondTime;

int hour,munite,second;

Line2D secondLine,muniteLine,hourLine;

int a,b,c;

double pointSX[]=new double[60],//用来表示秒针端点坐标的数组

pointSY[]=new double[60],

pointMX[]=new double[60], //用来表示分针端点坐标的数组

pointMY[]=new double[60],

pointHX[]=new double[60], //用来表示时针端点坐标的数组

pointHY[]=new double[60];

Clock()

{ secondTime=new Timer(1000,this);

pointSX[0]=0;                         //12点秒针位置

pointSY[0]=-100;

pointMX[0]=0;                         //12点分针位置

pointMY[0]=-90;

pointHX[0]=0;                         //12点时针位置

pointHY[0]=-70;

double angle=6*Math.PI/180;          //刻度为6度

for(int i=0;i59;i++)                //计算出各个数组中的坐标

{ pointSX[i+1]=pointSX[i]*Math.cos(angle)-Math.sin(angle)*pointSY[i];

pointSY[i+1]=pointSY[i]*Math.cos(angle)+pointSX[i]*Math.sin(angle);

pointMX[i+1]=pointMX[i]*Math.cos(angle)-Math.sin(angle)*pointMY[i];

pointMY[i+1]=pointMY[i]*Math.cos(angle)+pointMX[i]*Math.sin(angle);

pointHX[i+1]=pointHX[i]*Math.cos(angle)-Math.sin(angle)*pointHY[i];

pointHY[i+1]=pointHY[i]*Math.cos(angle)+pointHX[i]*Math.sin(angle);

}

for(int i=0;i60;i++)

{ pointSX[i]=pointSX[i]+120;            //坐标平移

pointSY[i]=pointSY[i]+120;

pointMX[i]=pointMX[i]+120;            //坐标平移

pointMY[i]=pointMY[i]+120;

pointHX[i]=pointHX[i]+120;            //坐标平移

pointHY[i]=pointHY[i]+120;

}

secondLine=new Line2D.Double(0,0,0,0);

muniteLine=new Line2D.Double(0,0,0,0);

hourLine=new Line2D.Double(0,0,0,0);

secondTime.start();        //秒针开始计时

}

public void paint(Graphics g)

{   for(int i=0;i60;i++)     //绘制表盘上的小刻度和大刻度

{  int m=(int)pointSX[i];

int n=(int)pointSY[i];

if(i%5==0)

{ g.setColor(Color.red);

g.fillOval(m-4,n-4,8,8);

}

else

{ g.setColor(Color.cyan);

g.fillOval(m-2,n-2,4,4);

}

}

g.fillOval(115,115,10,10);  //钟表中心的实心圆

Graphics2D g_2d=(Graphics2D)g;

g_2d.setColor(Color.red);

g_2d.draw(secondLine);

BasicStroke bs=

new BasicStroke(3f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.blue);

g_2d.draw(muniteLine);

bs=new BasicStroke(6f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.green);

g_2d.draw(hourLine);

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==secondTime){

date=new Date();

String s=date.toString();

hour=Integer.parseInt(s.substring(11,13));

munite=Integer.parseInt(s.substring(14,16));

second=Integer.parseInt(s.substring(17,19)); //获取时间中的秒

int h=hour%12;

a=second;                    //秒针端点的坐标

b=munite;                    //分针端点的坐标

c=h*5+munite/12;             //时针端点的坐标

secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);

muniteLine.setLine(120,120,(int)pointMX[b],(int)pointMY[b]);

hourLine.setLine(120,120,(int)pointHX[c],(int)pointHY[c]);

repaint();

} if(e.getSource()==jb){

 secondTime.start();

}if(e.getSource()==jb1){

 secondTime.stop();

}

}

public static void main(String args[]){

 JFrame win=new JFrame("时钟");

 JPanel jp=new JPanel();

 jp.add(jb);

 jp.add(jb1);

 Clock clock=new Clock();

 jb.addActionListener(clock);

 jb1.addActionListener(clock);

 win.add(clock,BorderLayout.CENTER);

 win.add(jp,"South");

 win.setVisible(true);

 win.setSize(246,300);

 win.setDefaultCloseOperation(3) ;

 win.validate();

   }

}

运行截图:

有问题就追问,满意请采纳。


当前标题:java圆形钟表代码 java简单时钟代码及详细解释
URL网址:http://cxhlcq.com/article/hjpseo.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部