📄 jcj.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.awt.geom.*;
import java.util.*;
class Clock extends JPanel
{
Timer secondTime;
Line2D secondLine,muniteLine,hourLine;
Toolkit tool;
Image image;
public static int s,m,h,d,m1,y,w;
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()
{
pointSX[0]=0;
pointSY[0]=-120;
pointMX[0]=0;
pointMY[0]=-100;
pointHX[0]=0;
pointHY[0]=-80;
double angle=6*Math.PI/180;
for(int i=0;i<59;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;i<60;i++)
{
pointSX[i]=pointSX[i]+165;
pointSY[i]=pointSY[i]+220;
pointMX[i]=pointMX[i]+165;
pointMY[i]=pointMY[i]+220;
pointHX[i]=pointHX[i]+165;
pointHY[i]=pointHY[i]+220;
}
tool=getToolkit();
image=tool.getImage("9.gif");
secondLine=new Line2D.Double(0,0,0,0);
muniteLine=new Line2D.Double(0,0,0,0);
hourLine=new Line2D.Double(0,0,0,0);
}
public void setvalue(int s,int h,int m,int d,int m1,int y,int w)
{
this.s=s;
this.h=h;
this.m=m;
this.d=d;
this.m1=m1;
this.y=y;
this.w=w;
}
public void paint(Graphics g)
{
g.drawImage(image,0,0,600,500,this);
int x=1;
for(int i=0;i<60;i++)
{
int m=(int)pointSX[i];
int n=(int)pointSY[i];
g.setColor(Color.red);
if(i==0)
{
g.drawString("12",m-4,n+2);
}
else if(i%5==0)
{
String y=String.valueOf(x);
g.drawString(y,m-4,n+2);
x++;
}
else
{
g.setColor(Color.yellow);
g.fillOval(m-2,n-2,4,4);
}
}
g.setColor(Color.black);
g.fillOval(160,215,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);
g.setFont(new java.awt.Font("华文行楷",java.awt.Font.BOLD,20));
g.drawString("现在的时间是:"+h+":"+m+":"+s,60,400);
g.setFont(new java.awt.Font("华文行楷",java.awt.Font.PLAIN,16));
g.drawString(y+"年"+m1+"月"+d+"日",120,150);
if(w==0)
{
g.drawString("星期天",140,300);
}
else
{
g.drawString("星期"+w,140,300);
}
}
public Image getImage()
{
return image;
}
}
class f extends JFrame implements ActionListener
{
JLabel l1,l2,l3;
JButton b1;
settime dialog=new settime(this);
int a,b,c;
Calendar t;
Timer secondTime;
Clock clock=new Clock();
int s1,m1,h1,d1,m11,y1,w1;
boolean bool=true;
public f()
{
t=Calendar.getInstance();
b1=new JButton("重新设置时间");
Font f=new Font("华文行楷",Font.BOLD,25);
b1.setFont(f);
secondTime=new Timer(1000,this);
b1.addActionListener(this);
add(clock,BorderLayout.CENTER);
add(b1,BorderLayout.SOUTH);
setVisible(true);
setBounds(150,200,330,580);
secondTime.start();
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
dialog.setVisible(true);
bool=false;
}
if(e.getSource()==secondTime)
{
if(bool)
{
t.setTime(new Date());
}
else
{
t.set(dialog.a1,dialog.a2,dialog.a3,dialog.a4,dialog.a5,dialog.a6);
dialog.a6++;
if (dialog.a6==60)
{
dialog.a5++;
dialog.a6=0;
}
if (dialog.a5==60)
{
dialog.a4++;
dialog.a5=0;
}
if (dialog.a4==24)
{
dialog.a4=0;
dialog.a3++;
}
}
s1=t.get(Calendar.SECOND);
m1=t.get(Calendar.MINUTE);
h1=t.get(Calendar.HOUR_OF_DAY);
d1=t.get(Calendar.DAY_OF_MONTH);
m11=t.get(Calendar.MONTH)+1;
y1=t.get(Calendar.YEAR);
w1=t.get(Calendar.DAY_OF_WEEK)-1;
clock.setvalue(s1,h1,m1,d1,m11,y1,w1);
int i=h1%12;
int a=s1,b=m1,c=i*5+m1/12;
clock.secondLine.setLine(165,220,(int)clock.pointSX[a],(int)clock.pointSY[a]);
clock.muniteLine.setLine(165,220,(int)clock.pointMX[b],(int)clock.pointMY[b]);
clock.hourLine.setLine(165,220,(int)clock.pointHX[c],(int)clock.pointHY[c]);
clock.repaint();
}
}
}
class settime extends JDialog implements ActionListener
{
JButton button1,button2;
Box baseBox,baseBox1,boxV1,boxV2,boxV3,boxV4;
TextField text1,text2,text3,text4,text5,text6;
JLabel l1,l2,l3,l4,l5,l6,l7,l8;
int a1,a2,a3,a4,a5,a6;
public settime(JFrame f)
{
super(f,"设置时间对话框",false);
l1=new JLabel("请输入日期:");
l2=new JLabel("年");
l3=new JLabel("月");
l4=new JLabel("日");
l5=new JLabel("请输入时间:");
l6=new JLabel("时");
l7=new JLabel("分");
l8=new JLabel("秒");
Font f1=new Font("华文行楷",Font.ITALIC,20);
l1.setFont(f1);l5.setFont(f1);
l2.setFont(f1);l6.setFont(f1);
l3.setFont(f1);l7.setFont(f1);
l4.setFont(f1);l8.setFont(f1);
text1=new TextField(10);text2=new TextField(10);text3=new TextField(10);
text4=new TextField(10);text5=new TextField(10);text6=new TextField(10);
add(l1);
boxV1=Box.createVerticalBox();
boxV1.add(l2);
boxV1.add(Box.createVerticalStrut(20));
boxV1.add(l3);
boxV1.add(Box.createVerticalStrut(20));
boxV1.add(l4);
boxV2=Box.createVerticalBox();
boxV2.add(text1);
boxV2.add(Box.createVerticalStrut(20));
boxV2.add(text2);
boxV2.add(Box.createVerticalStrut(20));
boxV2.add(text3);
baseBox=Box.createHorizontalBox();
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(30));
baseBox.add(boxV2);
add(baseBox);
add(l5);
boxV3=Box.createVerticalBox();
boxV3.add(l6);
boxV3.add(Box.createVerticalStrut(20));
boxV3.add(l7);
boxV3.add(Box.createVerticalStrut(20));
boxV3.add(l8);
boxV4=Box.createVerticalBox();
boxV4.add(text4);
boxV4.add(Box.createVerticalStrut(20));
boxV4.add(text5);
boxV4.add(Box.createVerticalStrut(20));
boxV4.add(text6);
baseBox1=Box.createHorizontalBox();
baseBox1.add(boxV3);
baseBox1.add(Box.createHorizontalStrut(30));
baseBox1.add(boxV4);
add(baseBox1);
button1=new JButton("确定");
button2=new JButton("退出");
Font f2=new Font("华文行楷",Font.BOLD,20);
button1.setFont(f2);
button2.setFont(f2);
button2.setForeground(Color.red);
add(button1);
add(button2);
button1.addActionListener(this);
button2.addActionListener(this);
setLayout(new FlowLayout());
setBounds(120,125,650,200);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{setVisible(false);}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
{
a1=Integer.parseInt(text1.getText());
a2=Integer.parseInt(text2.getText())-1;
a3=Integer.parseInt(text3.getText());
a4=Integer.parseInt(text4.getText());
a5=Integer.parseInt(text5.getText());
a6=Integer.parseInt(text6.getText());
JOptionPane.showMessageDialog(this,"时间设置成功","消息对话框",JOptionPane.PLAIN_MESSAGE);
}
else if(e.getSource()==button2)
{
setVisible(false);
}
}
}
public class jcj
{
public static void main(String argsp[])
{
new f();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -