时间在线验证 java代码_timeclient.java 源代码在线查看 - 客户端从服务器获取时间 资源下载 虫虫电子下载站...

import java.rmi.*;import java.rmi.server.*;import java.util.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.rmi.*;public class timeClient extends UnicastRemoteObject implements timeClientInterface{myTime mytime = new myTime(new Date()) ;timeClient timeclient;public timeClient()throws RemoteException{super();}public void setClient(timeClient timeclient){this.timeclient = timeclient;}public void updateTime(Date date)throws RemoteException{System.out.println("the current time is: "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());mytime.reDraw(date);mytime.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} class myTime extends JFrame {private JTextField textField1,textField2;private JButton button1,button2;private JLabel label1 = new JLabel("间隔");private JLabel label2 = new JLabel("秒显示");private JLabel label3 = new JLabel("当前时间");private JPanel panel,panel2;//String registryURL;private timeServerInterface h;ClockCanvas clock; public myTime(Date date){super("time");Container container = getContentPane();container.setLayout(new BorderLayout());panel = new JPanel();panel.setLayout(new FlowLayout());panel2 = new JPanel();panel2.setLayout(new FlowLayout());textField1 = new JTextField(15);textField2 = new JTextField("1",2);button1 = new JButton("连接");button1.addActionListener(new Connect());button2 = new JButton("断开");button2.addActionListener(new Disconnect());panel.add(label1);panel.add(textField2);panel.add(label2);panel.add(button1);panel.add(button2);panel2.add(label3);panel2.add(textField1);container.add(panel,BorderLayout.NORTH);clock = new ClockCanvas(date);container.add(clock,BorderLayout.CENTER);container.add(panel2,BorderLayout.SOUTH);setSize(450,200);setVisible(true); }class ClockCanvas extends JPanel{Date dat ;int xcenter = 200, ycenter = 50;int Radius = ycenter-5;public ClockCanvas(Date date){setSize(400,125);dat = date;}public void paintComponent(Graphics g){super.paintComponent(g);int xh,yh,xm,ym,xs,ys,s,m,h;String today;s=dat.getSeconds(); //获得时间秒m=dat.getMinutes(); //获得时间分h=dat.getHours();today=dat.toLocaleString(); //获得字符串时间格式textField1.setText(today);//计算秒的坐标xs=(int)(Math.cos(s*3.14f/30-3.14f/2)*(Radius-5)+xcenter);ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*(Radius-5)+ycenter); //计算分钟的坐标xm=(int)(Math.cos(m*3.14f/30-3.14f/2)*(Radius-10)+xcenter);ym=(int)(Math.sin(m*3.14f/30-3.14f/2)*(Radius-10)+ycenter); //计算小时的坐标xh=(int)(Math.cos((h*30+m/2)*3.14f/180-3.14f/2)*(Radius-20)+xcenter);yh=(int)(Math.sin((h*30+m/2)*3.14f/180-3.14f/2)*(Radius-20)+ycenter);g.setColor(Color.darkGray); //设置颜色g.drawString("9",xcenter-(Radius-5),ycenter+3); //显示时钟上的数字‘9’g.drawString("3",xcenter+(Radius-10),ycenter+3); //显示时钟上的数字‘3’g.drawString("12",xcenter-5,ycenter-(Radius-13)); //显示时钟上的数字'12'g.drawString("6",xcenter-3,ycenter+(Radius-10)); //显示时钟上的数字'6'g.drawString(today,0,125); //显示字符串时钟g.drawLine(xcenter,ycenter,xs,ys); //画秒针g.setColor(Color.blue); //设置颜色g.drawArc(xcenter-Radius,ycenter-Radius,2*Radius,2*Radius,0,360); //画钟g.drawLine(xcenter,ycenter-1,xm,ym); //画分针g.drawLine(xcenter-1,ycenter,xm,ym); //画分针g.drawLine(xcenter,ycenter-1,xh,yh); //画时针g.drawLine(xcenter-1,ycenter,xh,yh); //画时针//setVisible(true);}public void redraw(Date date){dat = date;repaint();}}class Connect implements ActionListener{public void actionPerformed(ActionEvent e){try{String timeDuration = textField2.getText();int time = Integer.parseInt(timeDuration);System.out.println(time);String registryURL = "rmi://localhost"+":"+2345+"/callback";h = (timeServerInterface)Naming.lookup(registryURL);System.out.println("Lookup complete");Date date = h.getTime();System.out.println("the current time is: "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());String today=date.toLocaleString(); //获得字符串时间格式textField1.setText(today);h.register(timeclient,time);}catch(Exception re){System.out.println("Exception in CallbackClient: "+re);}}}class Disconnect implements ActionListener{public void actionPerformed(ActionEvent e){try{h.unregister(timeclient);}catch(RemoteException re){System.out.println("RemoteException in myTime's Disconnect of timeClient :"+re);}}} public void reDraw(Date date){ clock.redraw(date); } }public static void main(String[] args){try{ timeClient timeclient = new timeClient(); timeclient.setClient(timeclient);}catch(RemoteException re){System.out.println("RemoteException of timeClientImp: "+re);}}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值