用java编写一个控制时间的程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java编写一个控制时间的程序相关的知识,希望对你有一定的参考价值。

参考技术A import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class GetNowTimeDemo
JFrame frame;
JTextArea displayArea1;
JTextArea displayArea2;
String timestr;

Calendar calendar;
Date currentDate;

SimpleDateFormat sdfyear;//年份格式
SimpleDateFormat sdfmonday;//月份、日期格式
SimpleDateFormat sdfeee;//星期格式
//SimpleDateFormat sdftime;//具体时间格式

String stryear;//年份
String strmonday;//月份、日期
String streee;//星期

String nowTime;
TimeThread timeThread;
SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss",Locale.getDefault());

//程序主操作函数
public GetNowTimeDemo()
frame=new JFrame("现在时间");//显示框容器
frame.setLayout(null);

displayArea1=new JTextArea();//大时间显示框
displayArea1.setFont(new Font("宋体",Font.BOLD,30));//设置显示框字体
displayArea1.setBounds(0,0,400,250);
frame.add(displayArea1);//将时间显示框加载到容器中
displayArea1.setEditable(false);

displayArea2=new JTextArea();//具体时间显示框
displayArea2.setFont(new Font("宋体",Font.BOLD,40));//设置显示框字体
displayArea2.setBounds(0,250,400,100);
frame.add(displayArea2);//将时间显示框加载到容器中
displayArea2.setEditable(false);
displayArea2.setForeground(Color.blue);

JPanel panelCon1=new JPanel();//控制面板1
panelCon1.setBounds(0,350,400,80);
frame.add(panelCon1);//将控制面板加载到容器中

JButton getTime=new JButton("获取时间");//获取时间按钮
panelCon1.add(getTime);//将获取时间按钮加载到控制面板
getTime.addActionListener(new ActionListener()//获取时间按钮添加动作监听器

public void actionPerformed(ActionEvent e) //动作监听函数
GetDisTime();//获取并显示时间


);

JButton exit=new JButton("退出");//退出按钮
panelCon1.add(exit);//将退出按钮添加到控制面板
exit.addActionListener(new ActionListener()//退出按钮添加动作监听器

public void actionPerformed(ActionEvent e)
System.exit(0);//退出


);

frame.setLocation(250,50);//设置显示框出现位置
frame.setSize(400,430);//设置显示框大小
frame.setVisible(true);//设置显示框可见性
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置错误处理


//获取时间并显示函数
@SuppressWarnings("deprecation")
public void GetDisTime()
try
displayArea1.setText("");

calendar=Calendar.getInstance();//获得系统时间日历

currentDate=calendar.getTime();//格式化日历

sdfyear=new SimpleDateFormat("yyyy",Locale.getDefault());//年份格式
stryear=sdfyear.format(currentDate);//年份格式化显示
displayArea1.append("\n\t"+stryear);//年份显示

sdfmonday=new SimpleDateFormat("MMM dd",Locale.getDefault());//月份、日期格式
strmonday=sdfmonday.format(currentDate);//月份、日期格式化显示
displayArea1.append("\n\n\t"+strmonday);//月份、日期显示

sdfeee=new SimpleDateFormat("EEE",Locale.getDefault());//星期格式
streee=sdfeee.format(currentDate);//星期格式化显示
displayArea1.append("\n\n\t"+streee);//星期显示

String time=new Date().toLocaleString();

displayArea1.append("\n"+time);

timeThread=new TimeThread();
timeThread.start();//时间线程启动

//sdftime=new SimpleDateFormat("hh:mm:ss",Locale.getDefault());//具体时间格式
//strtime=sdftime.format(currentDate);//具体时间格式化显示
//displayArea.append("\n\n\t"+strtime);//具体时间显示

//int hour=calendar.get(calendar.HOUR_OF_DAY);
//int minute=calendar.get(calendar.MINUTE);
//int second=calendar.get(calendar.SECOND);

//displayArea.append("\n\n\thour= "+hour+"\n\tminute= "
//+minute+"\n\tsecond= "+second);

catch(Exception e1)
JOptionPane.showMessageDialog(null,"获取时间出错!");



class TimeThread extends Thread
public void run()
while(true)
try
calendar=Calendar.getInstance();//获得时间
currentDate=calendar.getTime();//转化为格式化时间
nowTime=sdf.format(currentDate);//将格式化时间转化为设置的String

displayArea2.setText("");
displayArea2.append(" "+nowTime);

Thread.sleep(999);//休眠990us
catch(Exception e1)
JOptionPane.showMessageDialog(null, "获取时间出错!");





//程序主函数
public static void main(String args[])
new GetNowTimeDemo();

参考技术B 想控制什么?内容具体一些, 参考技术C 具体要求是什么?请说详细些。

用JAVA编写一个小游戏

用JAVA程序编写一个小游戏 不带界面的

前天写的猜数字游戏,yong i控制猜测次数,有详细解析,用黑窗口可以直接运行,

我试验过了,没问题

import javax.swing.Icon;
import javax.swing.JOptionPane;
public class CaiShuZi4JOptionPane
/**
* @param args
*/
public static void main(String[] args)
Icon icon = null;
boolean bl = false;
int put = 0;
int c = (int) (((Math.random())*100)+1); //获取一个1-100的随机数
System.out.println("你获取的随机数是:"+c); //打印你的随机数字

String str1 = (String) JOptionPane.showInputDialog(null,"请输入你的猜测数字(1-100):\\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); //第一次输入你的猜测数字

if(str1==null)
JOptionPane.showMessageDialog(null, "你已经取消了本次游戏"); //如果你点取消那么本次游戏结束
else
bl = num(str1); //判断是输入的是不是数字或者是整数
if(true==bl) //如果是数字的话进入与随机数比较的程序
System.out.println("你输入的数字是:"+str1); //打印你输入的数字
put = Integer.valueOf(str1);

for(int i = 4;i > 0;i--) //i是你可以猜测的次数
if(put==c)
JOptionPane.showMessageDialog(null, "恭喜你猜对了,正确答案是:"+c+"。"); //如果你猜对了就直接结束循环
break;
else if(put>c) //如果输大了就让你再次从新输入
str1 = (String) JOptionPane.showInputDialog(null,"你的输入过大。你还有"+i+"次机会,请重新输入:\\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入");
if(str1==null)
JOptionPane.showMessageDialog(null, "你已经取消了本次输入");
break;
else
bl =num(str1);
if(true==bl)
put = Integer.valueOf(str1);
else
JOptionPane.showMessageDialog(null, "你的输入不正确,请重新输入");


else if(put<c) //如果你输小了也让你从新输入
str1 = (String) JOptionPane.showInputDialog(null,"你的输入过小。你还有"+i+"次机会,请重新输入:\\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入");
if(str1==null)
JOptionPane.showMessageDialog(null, "你已经取消了本次输入");
break;
else
bl =num(str1);
if(true==bl)
put = Integer.valueOf(str1);
else
JOptionPane.showMessageDialog(null, "你的输入不正确,请重新输入");






else if(bl==false) //这个 是你第一次如果填写的不是数字的话也会结束本次游戏
JOptionPane.showMessageDialog(null, "请您下次按要求填写。本次游戏结束");

if(true==bl && c!=put) //如果你i次都没猜对,那么就直接告诉你这个数十什么
JOptionPane.showMessageDialog(null, "很遗憾你没能猜对,这个数字是:"+c+".");






public static boolean num(String value) //一个静态方法,判断你输入的是不是数字
try
Integer.parseInt(value);
return true;
catch (Exception e)
return false;



参考技术A import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;

public class ZiMu extends JFrame
ZiMu()
this.setSize(300 , 600) ;
this.setResizable(false) ;
this.setTitle("打字游戏") ;
this.setBackground(Color.BLACK) ;

MyPanel mp = new MyPanel() ;
this.add(mp) ;
this.addKeyListener(mp) ;

Thread t = new Thread (mp) ;
t.start() ;

public static void main(String args[])
ZiMu w = new ZiMu () ;
w.setVisible(true) ;



class MyPanel extends JPanel implements Runnable, KeyListener
int x[] = new int[10] ;
int y[] = new int[10] ;
int sum = 0 ;
String z[] = new String[10] ;

MyPanel()
for(int i=0;i<10;i++)
x[i] = (int)(Math.random()*300) ;
y[i] = (int)(Math.random()*300) ;
z[i] = new String(""+(char)(Math.random()*25+65)) ;


public void paint(Graphics g)
super.paint(g) ;

this.setBackground(Color.black) ;
g.setColor(Color.WHITE) ;
g.drawString("一分钟正确打对的字母: "+sum , 10 , 560) ;
for(int i=0;i<10;i++)
g.drawString(z[i] , x[i] , y[i]) ;


public void run()
long g = System.currentTimeMillis() ;

while(System.currentTimeMillis()-g<=60000)

for(int i=0;i<10;i++)
y[i] ++ ;
if(y[i]>= 600)
sum -= 1 ;
y[i] = (int)(Math.random()*50) ;
x[i] = (int)(Math.random()*280) ;
z[i] = new String(""+(char)(Math.random()*25+65)) ;


try
Thread.sleep(20) ;

catch(Exception e)

this.repaint() ;




public void keyTyped(KeyEvent e)
// TODO: Add your code here


public void keyPressed(KeyEvent e)
String keychar = new String(""+e.getKeyChar()) ;
int yy = 0 ;
int j = -1 ;

for(int i=0;i<10;i++)
if(keychar.equals(z[i]))

if(yy<y[i])
yy = y[i] ;
j = i ;



if(j!=-1)
z[j] = new String(""+(char)(Math.random()*25+65)) ;
y[j] = 0 ;

sum += 1 ;

else
sum -= 1 ;



public void keyReleased(KeyEvent e)
// TODO: Add your code here
参考技术B 有什么需求吗?要做什么类型的游戏?

以上是关于用java编写一个控制时间的程序的主要内容,如果未能解决你的问题,请参考以下文章

用JAVA编写一个小应用程序

用java编写一个程序段,输入一个自然数,判断该数是不是为素数。

用JAVA编写一个小游戏

怎么编写一个倒计时的java的程序?求具体步骤!

java基础-在dos控制台编写简易的java程序

关于JAVA编写的WEB程序多次并发访问数据库的问题