Ⅰ 小白關於java中的鍾表(Clock)類例子問題

沒有

public static void main(String [] args){
}
方法

Ⅱ Java插入鍾表

看不清異常,稍微看到了illegal。參數不對。你看看你的Clock類是繼承自FRAME嗎?然後jpandl.add(param)的param能不能是frame。

Ⅲ 怎樣用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簡單時鍾

兄弟你也太吝嗇了點吧,不給分的。。。

改動一,buf 沒有初始化就是用了:
public void run() {
StringBuffer buf = new StringBuffer("");
while (true) {
buf = buf.append(Calendar.HOUR);
buf = buf.append(":");
buf = buf.append(Calendar.MINUTE);
buf = buf.append(":");
buf = buf.append(Calendar.SECOND);
f.getGraphics().drawString(buf.toString(), 0, 0);
buf = new StringBuffer("");
try {
t.sleep(1000);
} catch (Exception e) {}
}
}

改動二:畫板尚未初始化就是用 Graphics 對象,肯定也會出現空指針錯誤:
t = new Thread(new Test());
f.setVisible(true); //先出現畫面,在啟動線程!
t.start();

能調試成沒有 空指針 錯誤,但你的程序邏輯有問題,不會出現時鍾,你還得好好設計設計!

good luck!

Ⅳ 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 簡易時鍾

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
final public class LocalTimePanel extends JFrame {
private JComboBox timeBox;
private JTextField timeField;
private SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年M月d日 a h時m分s秒");

public LocalTimePanel(String title) throws HeadlessException {
super(title); init(); doLay(); handleEvents();
}

private void init() {
timeBox = new JComboBox(TimeZone.getAvailableIDs());
timeField = new JTextField(20);
}

private void doLay() {
Container container = getContentPane();
container.add(timeBox, BorderLayout.NORTH);
container.add(timeField, BorderLayout.SOUTH);

pack();
setVisible(true);
}

private void handleEvents() {
timeBox.addItemListener(new TimeSelectedChangedListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void updateTimeText(String timeZoneId) {
TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);
dateFormat.setTimeZone(timeZone);

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(timeZone);
timeField.setText(dateFormat.format(calendar.getTime()));
}
private class TimeSelectedChangedListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange()==ItemEvent.SELECTED) {
if (e.getItem() instanceof String) {
updateTimeText(e.getItem().toString());
}
}
}
}
public static void main(String[] args) {new LocalTimePanel("Local Time");}
}

Ⅶ JAVA畫時鍾代碼

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importsun.util.calendar.Gregorian;
importjava.util.Calendar;
importjava.util.GregorianCalendar;

{
intx,y,x0,y0,r,h,olds_x,olds_y,oldm_x,oldm_y,oldh_x,oldh_y,
ss,mm,hh,old_m,old_h,ang;
finaldoubleRAD=Math.PI/180;

publicClockPointer(){
super("Java時鍾");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Imageimage=getToolkit().getImage("clock.gif");
setIconImage(image);
setSize(400,400);
setBackground(Color.white);
//setLocation(300,150);
this.setLocationRelativeTo(null);
setResizable(true);
intdelay=1000;
//創建一個監聽事件

setVisible(true);
ActionListenerdrawClock=newActionListener(){
publicvoidactionPerformed(ActionEventevt){
repaint();
}
};
//創建一個時間計數器,每一秒觸發一次
newTimer(delay,drawClock).start();
}

java.text.SimpleDateFormatfmTime=newjava.text.SimpleDateFormat("HH:mm:ss");
//繪制圖形
publicvoidpaint(Graphicsg){
super.paint(g);
g.setFont(null);
Graphics2Dg2D=(Graphics2D)g;

Insetsinsets=getInsets();
intL=insets.left/2,T=insets.top/2;
h=getSize().height;
g.setColor(Color.white);
//畫圓
g2D.setStroke(newBasicStroke(2.0f));
g.setColor(Color.gray);
g.drawOval(L+40,T+40,h-80,h-80);
r=h/2-40;
x0=40+r-5+L;
y0=40+r-5-T;
ang=60;
//繪制時鍾上的12個字
for(inti=1;i<=12;i++){
x=(int)((r+10)*Math.cos(RAD*ang)+x0);
y=(int)((r+10)*Math.sin(RAD*ang)+y0);
g.setColor(Color.black);
g.drawString(""+i,x,h-y);
ang-=30;
}
//獲得現在的時間
Calendarnow=newGregorianCalendar();
intnowh=now.get(Calendar.HOUR_OF_DAY);
intnowm=now.get(Calendar.MINUTE);
intnows=now.get(Calendar.SECOND);

Stringst=fmTime.format(now.getTime());
//在窗體上顯示時間
g.setColor(Color.pink);
g.fillRect(L,T,50,28);
g.setColor(Color.blue);
g.drawString(st,L+2,T+26);

//計算時間與度數的關系
ss=90-nows*6;
mm=90-nowm*6;
hh=90-nowh*30-nowm/2;
x0=r+40+L;
y0=r+40+T;
g2D.setStroke(newBasicStroke(1.2f));
//擦除秒針
//if(olds_x>0){
//g.setColor(getBackground());
////g.setColor(Color.gray);
//g.drawLine(x0,y0,olds_x,h-olds_y);//(?)
//}
//繪制秒針
x=(int)(r*0.9*Math.cos(RAD*ss))+x0;
y=(int)(r*0.9*Math.sin(RAD*ss))+y0-2*T;
g.setColor(Color.yellow);
g.drawLine(x0,y0,x,h-y);
olds_x=x;
olds_y=y;
g2D.setStroke(newBasicStroke(2.2f));
//擦除分針
//if(old_m!=mm){
//g.setColor(getBackground());
//g.drawLine(x0,y0,oldm_x,h-oldm_y);
//}
//繪制分針
x=(int)(r*0.7*Math.cos(RAD*mm))+x0;
y=(int)(r*0.7*Math.sin(RAD*mm))+y0-2*T;
g.setColor(Color.green);
g.drawLine(x0,y0,x,h-y);
oldm_x=x;
oldm_y=y;
old_m=mm;
g2D.setStroke(newBasicStroke(3.2f));
//擦除時針
//if(old_h!=hh){
//g.setColor(getBackground());
//g.drawLine(x0,y0,oldh_x,h-oldh_y);
//}
//繪制時針
x=(int)(r*0.5*Math.cos(RAD*hh))+x0;
y=(int)(r*0.5*Math.sin(RAD*hh))+y0-2*T;
g.setColor(Color.red);
g.drawLine(x0,y0,x,h-y);
oldh_x=x;
oldh_y=y;
old_h=hh;
}

publicstaticvoidmain(String[]args){
newClockPointer();
}
}

//整理一下

Ⅷ java日歷和鍾表代碼

import hysun.util.MonthlyCalendar;
import javax.swing.*;
import java.awt.*;

public class TestMC extends JFrame {

public TestMC() {
final JTextField textfield = new JTextField();
getContentPane().add(textfield, BorderLayout.NORTH);

MonthlyCalendar mc = new MonthlyCalendar() {
protected void dateSelected() {
textfield.setText(getYear()+"."+getMonth()+"."+getSelectedDay());
}
};
mc.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
mc.setYearMonth(2005, 2);
getContentPane().add(mc);

setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
}

public static void main(String args[]) {
new TestMC().setVisible(true);
}

}

Ⅸ java時鍾

GDI+時鍾
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
public class Clock extends JComponent {
private static final Color INTEGRAL_COLOR = new Color(0, 128, 128);
private int radius;
private Calendar currentTime = Calendar.getInstance();
private double s = 0.03;
public Clock(int radius) {
this.radius = radius;
}
public void setCurrentTime(Date time)
{
this.currentTime.setTime(time);
}
public void setCurrentTime(long millis) {
this.currentTime.setTimeInMillis(millis);
}
public Dimension getPreferredSize() {
Insets insets = getInsets();
int r = (int) (radius == -1 ? 0 : radius * (1 + s)) + 1;
return new Dimension(r * 2 + insets.left + insets.right, r * 2
+ insets.top + insets.bottom);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Insets insets = getInsets();
int wid = getWidth() - insets.left - insets.right;
int hei = getHeight() - insets.top - insets.bottom;
int r = (int) ((Math.min(wid, hei)) / 2 / (1 + s));
g2d.translate(insets.left + r * (1 + s), insets.top + r * (1 + s));
g2d.scale(1, -1);
for (int i = 0; i < 60; i++) {
int angle = 90 - i * 6;
double pos[] = calcPos(r, angle);
paintMinuteDot(r, g2d, pos[0], pos[1], i % 5 == 0);
}
paintHourPointer(r, g2d);
paintMinutePointer(r, g2d);
paintSecondPointer(r, g2d);
paintCenterPoint(g2d);
g2d.scale(1, -1);
g2d.translate(-insets.left - r * (1 + s), -insets.top - r * (1 + s));
}
private void paintCenterPoint(Graphics2D g2d) {
g2d.setColor(Color.BLUE);
Rectangle2D rect = new Rectangle2D.Double(-2, -2, 4, 4);
g2d.fill(rect);
}
private void paintMinutePointer(int r, Graphics2D g2d) {
int minute = currentTime.get(Calendar.MINUTE);
int second = currentTime.get(Calendar.SECOND);
double angle = 90 - (minute + second / 60.0) * 6;
Shape pointerShape = createPointerShape(r * 0.8, r * 0.04, r * 0.08,
angle);
g2d.setColor(Color.LIGHT_GRAY);
g2d.fill(pointerShape);
g2d.setColor(Color.DARK_GRAY);
g2d.draw(pointerShape);
}
private void paintHourPointer(int r, Graphics2D g2d) {
int hour = currentTime.get(Calendar.HOUR);
int minute = currentTime.get(Calendar.MINUTE);
int second = currentTime.get(Calendar.SECOND);
double angle = 90 - (hour + minute / 60.0 + second / 3600.0) * 30;
Shape pointerShape = createPointerShape(r * 0.6, r * 0.06, r * 0.1,
angle);
g2d.setColor(Color.LIGHT_GRAY);
g2d.fill(pointerShape);
g2d.setColor(Color.DARK_GRAY);
g2d.draw(pointerShape);
}
private Shape createPointerShape(double r1, double r2, double r3,
double angle) {
GeneralPath gp = new GeneralPath();
double[] pos = calcPos(r1, angle);
double[] pos1 = calcPos(r2, angle + 90);
gp.append(new Line2D.Double(pos[0], pos[1], pos1[0], pos1[1]), true);
double[] pos2 = calcPos(r3, angle + 180);
gp.lineTo((float) pos2[0], (float) pos2[1]);
double[] pos3 = calcPos(r2, angle + 270);
gp.lineTo((float) pos3[0], (float) pos3[1]);
gp.closePath();
return gp;
}
private void paintSecondPointer(int r, Graphics2D g2d) {
g2d.setColor(Color.BLACK);
int second = currentTime.get(Calendar.SECOND);
int angle = 90 - second * 6;
double pos[] = calcPos(r * 0.9, angle);
double pos1[] = calcPos(r * 0.2, angle + 180);
Line2D line = new Line2D.Double(pos1[0], pos1[1], pos[0], pos[1]);
g2d.draw(line);
}
private void paintMinuteDot(int r, Graphics2D g2d, double x, double y,
boolean flag) {
g2d.setColor(flag ? Color.RED : Color.BLACK);
if (flag) {
// Rectangle2D rect = new Rectangle2D.Double(
Ellipse2D rect = new Ellipse2D.Double(x - r * s, y - r * s, r * s
* 2, r * s * 2);
g2d.fill(rect);
} else {
// Rectangle2D rect = new Rectangle2D.Double(
Ellipse2D rect = new Ellipse2D.Double(x - r * 0.02, y - r * 0.02,
r * 0.04, r * 0.04);
g2d.fill(rect);
}
}
private double[] calcPos(double r, double angle) {
double radian = Math.toRadians(angle);
double x = r * Math.cos(radian);
double y = r * Math.sin(radian);

return new double[] { x, y };
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
final Clock clock = new Clock(50);
clock.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
JFrame f = new JFrame("GDI+時鍾");
// f.setBounds(380,200,500,600);
f.this.add(clock, BorderLayout.CENTER);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
clock.setCurrentTime(System.currentTimeMillis());
clock.repaint();
}
}
}.start();
}
}

Ⅹ 如何用java做這樣的時鍾

class Clock{
private int hourse;
private int minute;
private int second;

public Clock(){
this.hourse=0;
this.minute=0;
this.second=0;

}

public void incSecond(){
this.second+=1;
}

public void toTime(){
if(this.hourse>24){this.hourse=0;}
if(this.minute>60){this.hourse+=1;this.minute-=60;}
if(this.second>60){this.minute+=1;this.second-=60;}
System.out.printf(hourse+":"+minute+":"+second);
}

public void setHourse(int hourse) {
this.hourse = hourse;
}

public void setMinute(int minute) {
this.minute = minute;
}

public void setSecond(int second) {
this.second = second;
}
}

public class test {
public static void main(String[] args) {
Clock c=new Clock();
c.setMinute(66);//測試數據
c.setSecond(61);
c.toTime();//輸出1:7:1
}
}
基本功能實現。