import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
public class Clock extends JFrame{
private JPanel jp =new JPanel();
MyPanel clockPanel;
MyMenu clockMenu;
Ellipse2D.Double e;
int x,y;
Line2D.Double hourLine;
Line2D.Double minLine;
Line2D.Double secLine;
GregorianCalendar calendar;
int hour,minute,second;
public static final int X=163;
public static final int Y=160;
public static final int X_bg=110;
public static final int Y_bg=110;
public static final int randin=55;
public static JMenuBar mb;
class MyMenu extends JMenu{
public MyMenu ()
{ mb = new JMenuBar();
JMenu menu1 = new JMenu("功能");
JMenuItem anItem = new JMenuItem("数字时钟");
JMenuItem anItem1 = new JMenuItem("图形时钟");
menu1.add(anItem);
menu1.add(anItem1);
}
}
class MyPanel extends JPanel{
public MyPanel ()
{
e=new Ellipse2D.Double(X_bg, Y_bg, 105, 105);
hourLine = new Line2D.Double(X,Y,X,Y);
minLine = new Line2D.Double(X,Y,X,Y);
secLine = new Line2D.Double(X,Y,X,Y);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
BasicStroke bs=new BasicStroke(3,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
Font f =new Font("黑体",Font.BOLD,16);
g2.setFont(f);
g2.drawString("ⅱ", 155, 125);
g2.drawString("Ⅵ", 155, 205);
g2.drawString("Ⅸ", 115, 165);
g2.drawString("Ⅲ", 194, 165);
g2.setStroke(bs);
g2.draw(e);
g2.setColor(Color.orange);
g2.draw(hourLine);
g2.setColor(Color.CYAN);
g2.draw(minLine);
g2.setColor(Color.GREEN);
g2.draw(secLine);
}
}
public Clock()
{
jp.setLayout(new BorderLayout());
clockPanel = new MyPanel();
clockMenu = new MyMenu();
jp.add(clockPanel,BorderLayout.EAST);
jp.add(clockMenu,BorderLayout.NORTH);
this.add(jp);
Timer t = new Timer();
Task task = new Task();
t.schedule(task,0,1000);
}
class Task extends TimerTask{
public void run(){
calendar = new GregorianCalendar();
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
second = calendar.get(Calendar.SECOND);
hourLine.x2 = X + 40 * Math.cos(hour * (Math.PI /6) - Math.PI / 2);
hourLine.y2 = Y + 40 * Math.sin(hour * (Math.PI /6) - Math.PI / 2);
secLine.x2 = X + 45 * Math.cos(second * (Math.PI /30) - Math.PI / 2);
secLine.y2 = Y + 45 * Math.sin(second * (Math.PI /30) - Math.PI / 2);
minLine.x2 = X + 47 * Math.cos(minute * (Math.PI /30) - Math.PI / 2);
minLine.y2 = Y + 47 * Math.sin(minute * (Math.PI /30) - Math.PI / 2);
repaint();
}
}
public static void main(String[] args){
Clock t =new Clock();
t.setSize(500,500);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setVisible(true);
}
}
这是一个关于JAVA时钟的代码,可运行后窗口没有内容
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
public class Clock extends JFrame{
private JPanel jp =new JPanel();
MyPanel clockPanel;
MyMenu clockMenu;
Ellipse2D.Double e;
int x,y;
Line2D.Double hourLine;
Line2D.Double minLine;
Line2D.Double secLine;
GregorianCalendar calendar;
int hour,minute,second;
public static final int X=163;
public static final int Y=160;
public static final int X_bg=110;
public static final int Y_bg=110;
public static final int randin=55;
public static JMenuBar mb;
class MyMenu extends JMenu{
public MyMenu ()
{ mb = new JMenuBar();
JMenu menu1 = new JMenu("功能");
JMenuItem anItem = new JMenuItem("数字时钟");
JMenuItem anItem1 = new JMenuItem("图形时钟");
menu1.add(anItem);
menu1.add(anItem1);
}
}
class MyPanel extends JPanel{
public MyPanel ()
{
e=new Ellipse2D.Double(X_bg, Y_bg, 105, 105);
hourLine = new Line2D.Double(X,Y,X,Y);
minLine = new Line2D.Double(X,Y,X,Y);
secLine = new Line2D.Double(X,Y,X,Y);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
BasicStroke bs=new BasicStroke(3,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
Font f =new Font("黑体",Font.BOLD,16);
g2.setFont(f);
g2.drawString("ⅱ", 155, 125);
g2.drawString("Ⅵ", 155, 205);
g2.drawString("Ⅸ", 115, 165);
g2.drawString("Ⅲ", 194, 165);
g2.setStroke(bs);
g2.draw(e);
g2.setColor(Color.orange);
g2.draw(hourLine);
g2.setColor(Color.CYAN);
g2.draw(minLine);
g2.setColor(Color.GREEN);
g2.draw(secLine);
}
}
public Clock()
{
jp.setLayout(new BorderLayout());
clockPanel = new MyPanel();
clockMenu = new MyMenu();
jp.add(clockPanel,BorderLayout.EAST);
jp.add(clockMenu,BorderLayout.NORTH);
this.add(jp);
Timer t = new Timer();
Task task = new Task();
t.schedule(task,0,1000);
}
class Task extends TimerTask{
public void run(){
calendar = new GregorianCalendar();
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
second = calendar.get(Calendar.SECOND);
hourLine.x2 = X + 40 * Math.cos(hour * (Math.PI /6) - Math.PI / 2);
hourLine.y2 = Y + 40 * Math.sin(hour * (Math.PI /6) - Math.PI / 2);
secLine.x2 = X + 45 * Math.cos(second * (Math.PI /30) - Math.PI / 2);
secLine.y2 = Y + 45 * Math.sin(second * (Math.PI /30) - Math.PI / 2);
minLine.x2 = X + 47 * Math.cos(minute * (Math.PI /30) - Math.PI / 2);
minLine.y2 = Y + 47 * Math.sin(minute * (Math.PI /30) - Math.PI / 2);
repaint();
}
}
public static void main(String[] args){
Clock t =new Clock();
t.setSize(500,500);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setVisible(true);
}
}
这是一个关于JAVA时钟的代码,可运行后窗口没有内容
