如何用Java制作时钟?

如何用Java制作时钟?,java,Java,我不熟悉堆栈溢出,也不熟悉Java。为了练习/强化我的技能,我正在试着做一个时钟。我的问题是: 我已经创建了一个类,TimeComponents,在这个类中我有我的源代码,可以让时钟工作。我想知道如何在我的主课TimeViewer中实际显示我的时钟。(希望我的措辞正确) 代码如下: 公共类时间组件{ 公共整数秒; 公开会议记录; 公共时间; 公共时间组件(int initialHour、int initialMinutes、int initialSeconds){ 初始秒=0; 初始分钟数=0

我不熟悉堆栈溢出,也不熟悉Java。为了练习/强化我的技能,我正在试着做一个时钟。我的问题是:

我已经创建了一个类,TimeComponents,在这个类中我有我的源代码,可以让时钟工作。我想知道如何在我的主课TimeViewer中实际显示我的时钟。(希望我的措辞正确)

代码如下:

公共类时间组件{
公共整数秒;
公开会议记录;
公共时间;
公共时间组件(int initialHour、int initialMinutes、int initialSeconds){
初始秒=0;
初始分钟数=0;
初始小时=0;
}
公共空白勾号(){
秒=秒++;
如果(秒==60){
分钟++;
秒=0;
如果(分钟==60){
小时++;
分钟=0;
}
}
}
}

您可以在时间函数中创建一个toString函数。它生成一个包含3个整数的字符串,您可以在主屏幕中打印它

代码时间查看器:

public String toString(){
  return hours + ":" + minutes + ":" + seconds
}
主要代码:

TimeComponent timecomponent  = new TimeComponent(0, 0, 0);
System.out.println(timecomponent);

我看了你的代码,似乎你在构造函数中做了一些不与类数据链接的事情(初始)。

很难说你的问题是什么,但这行:

seconds = seconds ++;
不会增加秒数。我试过:

    int seconds = 0;
    seconds = seconds++;
    System.out.println(seconds);
打印0

原因是++后缀在将值赋给变量后应用增量,因此会丢失增量

简单地尝试

seconds++;

我不太清楚您具体要求什么,但您一般都要求帮助,我发现您的代码中存在一些问题,我可以提供帮助

您的main方法为空,因此在运行代码时不会发生任何事情。尝试在main方法中创建TimeComponent的实例,并用它调用Tick()以查看发生了什么

在TimeComponents类的构造函数中,您已将输入“initialHour、initialMinutes和initialSeconds”设置为零。这不会声明“分钟、秒和小时”变量,并且在运行Tick()方法时会导致错误。在构造函数中,尝试将这些变量中的每一个设置为对应的输入变量,以避免出现这种情况,如下所示:

    public TimeComponents(int initialHour, int initialMinutes, int initialSeconds){
            seconds = initialSeconds;
            minutes = initialMinutes;
            hours = initialHours;
    }
    hours++;
若要使用++运算符递增,除非将++放在要递增的变量名称旁边,否则它将不起作用,如下所示:

    public TimeComponents(int initialHour, int initialMinutes, int initialSeconds){
            seconds = initialSeconds;
            minutes = initialMinutes;
            hours = initialHours;
    }
    hours++;

我希望这能帮助你解决问题。祝你好运

我希望这会对你有所帮助。 如果您认为有一些额外的变量,那么很抱歉。它们实际上被我用来实现一个模拟时钟,我现在正在尝试

import java.util.*;
public class Date_inner
{
    //on May 04 09:51:52 CDT 2009
    String date,time;
    int hh,mm,ss;
    void getData()
    {
            Date dat=new Date();
            String str=dat.toString();
            date=str.substring(7,10)+str.substring(3,7)+str.substring(23,28);
            hh=Integer.parseInt(str.substring(11,13));
            mm=Integer.parseInt(str.substring(14,16));
            ss=Integer.parseInt(str.substring(17,19));
            numtostring(hh,mm,ss);
    }
    void numtostring(int hh,int mm,int ss)
    {
         time=texttowords(hh)+"Hours "+texttowords(mm)+"Minutes "+texttowords(ss)+"Seconds ";
    }
    String texttowords(int num)
    {
        String arr[]={"One ","Two ","Three ","Four ","Five ","Six ","Seven ","Eight ","Nine ","Ten ","Eleven ","Twelve ","Thirteen ","Fourteen ","Fifteen ","Sixteen ","Seventeen ","Eighteen ","Nineteen ","Twenty ","Thirty ","Fourty ","Fifty "};
        if(num<=20)
            return arr[num-1];
        else if(num>20&&num<59)
        {
            return (arr[(num/10)+17]+arr[(num%10)-1]);
        }
        else
        {
            return "Error";
        }
    }
    void main()
    {
        getData();
        System.out.println(date);
        System.out.println(time);
    }
}
import java.util.*;
公开课日期
{
//2009年5月4日09:51:52 CDT
字符串日期、时间;
内高,毫米,不锈钢;
void getData()
{
Date dat=新日期();
字符串str=dat.toString();
日期=str.substring(7,10)+str.substring(3,7)+str.substring(23,28);
hh=Integer.parseInt(str.substring(11,13));
mm=整数.parseInt(str.substring(14,16));
ss=Integer.parseInt(str.substring(17,19));
numtostring(高、毫米、不锈钢);
}
虚空numtostring(整数高、整数毫米、整数不锈钢)
{
时间=文本文字(hh)+“小时”+文本文字(毫米)+“分钟”+文本文字(ss)+“秒”;
}
字符串texttowords(int num)
{
字符串arr[]={“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”、“二十”、“三十”、“四十”、“五十”};

if(num20&&num这里是一个简单的时钟

package myclock;
public class Clock 
{
public int hours; 
public int minutes;
public int seconds;
public Clock()
{
  hours=12;
  minutes=0;
  seconds=0;
}
public Clock(int hours, int minutes, int seconds)
{
this.hours=hours;
this.minutes=minutes;
this.seconds=seconds;
}
public Clock(int seconds)
{
 this.seconds=seconds%60;
 hours=seconds/60;
 this.minutes=hours%60;//minutes
 this.hours=hours/60;//hours
}
public void setClock(int seconds)
{
this.seconds=seconds;
}
public int getHours()
{
return this.hours;
}
public int getMinutes()
{
return this.minutes;
}
public int getSeconds()
{
return this.seconds;
}
public void setHours(int hours)
{
  this.hours=hours;
}
public void setMinutes()
{
  this.minutes=minutes;
}
public void setSeconds()
{
  this.seconds=seconds;
}
public void tick()
{
this.seconds++;
}
public void tickDown()
{
this.seconds--;
}

public String toString()
{
return "("+String.format("%02d",this.hours)+":"+String.format("%02d",this.minutes)+":"+String.format("%02d",this.seconds)+")";
}

}
然后实现类将如下所示

package myclock;
public class MyClock 
{
public static void main(String[] args) 
{
    Clock firstClock=new Clock(3602);//this is if you want to parse in seconds
    System.out.println(firstClock.toString()+"\n");
    Clock secondClock=new Clock(2,45,45);//this is if you want to parse in hours, minutes and seconds
    System.out.println(secondClock.toString());
    for(int i=0;i<10;i++)
    {
    firstClock.tick();
    System.out.println(firstClock.toString());
    }
}

}
封装myclock;
公共类MyClock
{
公共静态void main(字符串[]args)
{
Clock firstClock=new Clock(3602);//如果要以秒为单位进行解析,则使用此选项
System.out.println(firstClock.toString()+“\n”);
Clock secondClock=new Clock(2,45,45);//如果要以小时、分钟和秒为单位进行解析,则使用此选项
System.out.println(secondClock.toString());

对于(int i=0;i你的问题是什么?你的主方法是空的,你希望在一个空的主方法中发生什么?“制作时钟”告诉我们的不多。你想在控制台上打印它吗?你想它在窗口中吗?如果是后者,它是数字(
03:00
)还是模拟(