十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
lz这个代码有什么看不懂的 如果这个代码看不懂的话 建议你从基础的开始学习吧
成都网站建设哪家好,找成都创新互联!专注于网页设计、重庆网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都履带搅拌车等众多领域,积累了大量丰富的经验,同时也获得了客户的一致认可!
首先可以看到extends JFrame implements ActionListener 关于ActionListener 接口和JFrame 类lz有必要去看看 加入api慢慢研究下吧
int x,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;
这些东西我也看不懂 因为你的代码不完整
final double RAD=Math.PI/180; 这个应该是算一个弧度吧
super("made by mcj and wdh"); 这句无意义 是父类的代码
setDefaultCloseOperation(3);这个方法是什么??代码不完整
setSize(300,300);设置窗体大小
setBackground(Color.white);设置背景色
setLocation(300,150); 定位
setResizable(false);不调整大小
setVisible(true);可见
后面的就没有代码了
import javax.swing.*;
import java.awt.*;
public class FrameTest extends JFrame{
/**
* @param args
*/
public FrameTest(){
super("本窗口只显示5分钟");
setSize(400,400);
setVisible(true);
}
public static void main(String[] args) throws Exception {
// TODO 自动生成方法存根
FrameTest frame = new FrameTest();
Thread.sleep(5000);//睡5000ms (即5秒)
frame.setVisible(false);//隐藏了.
// 以下那句是响应关闭的,如果在期间不用到关窗口,不用这句也行的.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.exit(0);//退出整个运行,要记得哦,不然虽看不见窗口了,但实际上并没有退出执行呢.
}
}
使用 java.util.TimerTask 类,开启一个线程。
创建一个 class MyClass extends TimerTask
实现 run() 方法,其中打印出当前时间。
然后在main方法中 new 一个 MyClass
然后:
Timer timer = new Timer();
TimerTask task = MyClass ;
timer.schedule(task, 0, 1*1000);
就会看到每秒打印一个时间了。
你是想实时更新状态栏上的时间?
可以用定时器自动去更新
import javax.swing.*;
import java.awt.*;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Clock extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Clock().setVisible(true);
}
});
}
private JLabel timeLabel;
public Clock() {
timeLabel = new JLabel(String.valueOf(new Date()), JLabel.CENTER);
this.getContentPane().add(timeLabel, BorderLayout.CENTER);
this.setBounds(0, 0, 300, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new Timer("clock").schedule(new TimerTask() {
@Override
public void run() {
timeLabel.setText(String.valueOf(new Date()));
}
}, 0, 1000);
}
}
首先,给你看一个简单的代码例子先:
import java.util.*;
public class Test {
public static void main(String[] args) {
Date myDate = new Date();
Timer timer = new Timer();
timer.schedule(new MyTask(), myDate);
}
static class MyTask extends java.util.TimerTask {
public void run() {
System.out.println("________");
}
}
}
这段代码的作用是:在当前时间打印出“________”。
这里用到了Timer的schedule方法,该方法的使用有如下两种情况:
schedule(TimerTask task, Date time)设定指定任务task在指定时间time执行;
schedule(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定延迟peroid的执行。
scheduleAtFixedRate(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
这里要注意一点:如果是用后面两个方法的话,则要通过timer的cancel()方法结束其运行,否则会一直循环执行下去。
那么,回到你的题目,只要将Date time参数改一下、将上面的run()方法的方法体改一下就行了。
记得给我分哦~~^_^
用 java的 swing做个图形界面 然后显示当前的时间:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.JFrame;
public class NowTime extends JFrame
{
//添加 显示时间的JTextField
private void addComponent(){
JTextField time = new JTextField();
this.getContentPane().add(time);
this.setTimer(time);
}
//显示窗口
private void showTime(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//this.pack();//自动适应窗口大小
this.setSize(160, 80);
this.setVisible(true);
}
//设置Timer 1000ms实现一次动作 实际是一个线程
private void setTimer(JTextField time){
final JTextField varTime = time;
Timer timeAction = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
long timemillis = System.currentTimeMillis();
//转换日期显示格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
varTime.setText(df.format(new Date(timemillis)));
}
});
timeAction.start();
}
//运行方法
public static void main(String[] args) {
NowTime timeFrame = new NowTime();
timeFrame.addComponent();
timeFrame.showTime();
}
}