编写程序,在窗体中连续显示当前的时间,java,求解

当点击“Stop”按钮时,使时间停止显示;当点击“Start”按钮时,则重新启动时间显示。... 当点击“Stop”按钮时,使时间停止显示;当点击“Start”按钮时,则重新启动时间显示。 展开
 我来答
yugi111
2015-12-08 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;

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

public class Cat extends JFrame implements Runnable
{
private static final long serialVersionUID = 1L;

Thread thread;

public Cat()
{
setSize(200, 100);
setLayout(new BorderLayout());
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
start();
}

private Cat addComponents()
{
JPanel panel = new JPanel();
JButton run = new JButton("Start");
JButton wait = new JButton("Stop");
run.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
start();
}
});
wait.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
stop();
}
});
panel.add(run);
panel.add(wait);
add(panel, BorderLayout.SOUTH);
return this;
}

@Override
public void paint(Graphics g)
{
super.paint(g);
Calendar calendar = Calendar.getInstance();
String h = calendar.get(Calendar.HOUR_OF_DAY) + "";
h = h.matches("^\\d$") ? "0" + h : h;
String m = calendar.get(Calendar.MINUTE) + "";
m = m.matches("^\\d$") ? "0" + m : m;
String s = calendar.get(Calendar.SECOND) + "";
s = s.matches("^\\d$") ? "0" + s : s;
String str = h + ":" + m + ":" + s;
g.setFont(new Font("normal", Font.BOLD, 22));
g.drawString(str, getWidth() / 2 - 35, getHeight() / 2);
g.dispose();
}

public void start()
{
if(null == thread)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}

public synchronized void stop()
{
if(null != thread)
{
thread.interrupt();
thread = null;
notifyAll();
}
}

@Override
public void run()
{
Thread me = Thread.currentThread();
while(me == thread)
{
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{}
repaint();
}
}

public static void main(String[] args)
{
new Cat().addComponents().setVisible(true);
}
}
追问
亲  能改成系统自动时间吗 年月日都有的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式