「java定时退出」java定时关机代码
本篇文章给大家谈谈java定时退出,以及java定时关机代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在windows xp系统的非管理员用户下如何用java程序定时自动关闭计算机机?
- 2、java 线程定时关闭
- 3、java定时器怎么停止
- 4、java定时器timer怎么退出
- 5、java定时让线程停止
- 6、在Java中如何实现计时的这样一个功能,比如在限定时间完成游戏,没有完成就退出,怎么限定的时间呢?
在windows xp系统的非管理员用户下如何用java程序定时自动关闭计算机机?
把管理员的权限改一下不就行了么,要不就在运行里输入shutdown
-s
-t
60
可以的啊!
java 线程定时关闭
int count=0;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
count++;
if(count=90){
执行操作,线程开启。
}
}, new Date(), 1000);
java定时器怎么停止
1、scheduleUpdate
加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule)
看例子,走起。
首先在HelloWord类的头文件中声明Update函数:
[cpp] view plain copy print?
void update(float dt); //注意参数类型
然后在HelloWorld类源文件中实现函数Update:
[cpp] view plain copy print?
void HelloWorld::update(float dt)
{
CCLOG("baibai");
}
现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:
[cpp] view plain copy print?
this-scheduleUpdate(); //this是当前节点,如layer,所以可以省略啦。
运行之后你将会看到不断有baibai被打印出来
2、scheduleUpdate
可以没隔几秒执行某个自定义的函数,来看代码:
首先还是在HelloWorld中声明所要执行的函数:
java定时器timer怎么退出
手动关闭,异常退出。
全局计数,达到临界值退出。
timer.cancel();
java定时让线程停止
我这儿有一个过年前写的定时关机程序你可以拿去参考下~
程序里的取消功能跟你要的差不多
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 此类为定时关机的主界面类
* 这几天一直都在搞我的聊天程序,哎 但是技术问题,一直都做不走
* 之前一直都想写个定时关机程序,一直都是没时间,
* 现在那边做不走了,我就做做这个简单的,找点自信
* @author 程胜
* @date 09年1月24
* @address 家
* @version 0.1
*
*/
public class ShutDown extends JFrame{
private static final long serialVersionUID = 1L;
private JPanel pCenter=new JPanel();
private JPanel pNorth=new JPanel();
private JPanel pSouth=new JPanel();
private JButton bExit=new JButton("退出");
//用于显示当前时间
JLabel currentTime=new JLabel();
JButton bStart=new JButton("启动");
JButton bCancel=new JButton("取消");
JLabel info=new JLabel("请设定关机时间…………");
//此下拉框用于选择关机的小时
JComboBox hour=null;
//此下拉框用于先择关机的分钟
JComboBox minute=null;
/**
* 构造函数初始化界面
*/
public ShutDown(){
super("定时关机小程序verson0.1");
this.setSize(250,150);
addContent();
addEvent();
//改变大小不可用
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(this);
this.setVisible(true);
}
/**
* 为按钮添加事件监听
*/
private void addEvent() {
ActionListener buttonListen=new SetEvent();
bStart.addActionListener(buttonListen);
bCancel.addActionListener(buttonListen);
bExit.addActionListener(buttonListen);
}
/**
* 为界面添加内容
*/
private void addContent() {
//新建一个匿名线程,用于显示当前时间
new Thread(new Runnable(){
public void run(){
SimpleDateFormat sdf=new SimpleDateFormat("MM'月'dd'日'HH:mm:ss");
//Thread.interrupted()为判断线程是否中断
while(!Thread.interrupted()){
//获取当前时间
Calendar current=Calendar.getInstance();
ShutDown.this.currentTime.setText("当前时间为:"+sdf.format(current.getTime()));
try {
//休眠一秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
//新建用于显示小时和分钟的字符串数组
String[] lHour=new String[24];
String[] lMinute=new String[60];
for(int i=0;i24;i++){
lHour[i]=i+"";
}
for(int i=0;i60;i++){
lMinute[i]=i+"";
}
hour=new JComboBox(lHour);
minute=new JComboBox(lMinute);
JLabel xiaoshi=new JLabel("时");
JLabel fen=new JLabel("分");
bCancel.setEnabled(false);
pNorth.setLayout(new FlowLayout());
pNorth.add(new JLabel("请设定关机时间:"));
pNorth.add(hour);pNorth.add(xiaoshi);
pNorth.add(minute);pNorth.add(fen);
pSouth.add(bStart);pSouth.add(bCancel);pSouth.add(bExit);
pCenter.setLayout(new GridLayout(2,1));
pCenter.add(currentTime);
pCenter.add(info);
this.add(pCenter,"Center");
this.add(pNorth,"North");
this.add(pSouth,"South");
}
/**
* @param args
*/
public static void main(String[] args) {
//设置外观
JFrame.setDefaultLookAndFeelDecorated(true);
new ShutDown();
}
/**
* 内置类,用于处理事件
* @author 程胜
*
*/
class SetEvent implements ActionListener{
//用于存放关机的操作类
private Shut shut=null;
private String hour="";
private String minute="";
//获得界面类
private ShutDown shutDown=ShutDown.this;
public void actionPerformed(ActionEvent e) {
//如果事件为启动按钮触发
if(e.getSource()==bStart){
//获取下拉框中的数据
hour=shutDown.hour.getSelectedItem().toString();
minute=shutDown.minute.getSelectedItem().toString();
handleStart();
}else{
//如果事件为取消按钮触发
if(e.getSource()==bCancel){
//取消操作
handleCancel();
}else{
//如果事件为退出按钮触发,则退出系统
System.exit(0);
}
}
}
/**
* 取消按钮的事件的处理方法
*/
private void handleCancel() {
//如果关机类还在活动
if(shut.isAlive()){
//停止关机类线程
shut.stop();
}
//修改界面显示
shutDown.info.setText("您取消了之前设定的定时关机!");
shutDown.hour.setEnabled(true);
shutDown.minute.setEnabled(true);
shutDown.bStart.setEnabled(true);
shutDown.bCancel.setEnabled(false);
}
/**
* 启动按钮的事件的处理方法
*/
private void handleStart() {
shutDown.info.setText("您设置的关机时间是"+(hour.length()==1?"0"+hour:hour)+"时"+(minute.length()==1?"0"+minute:minute)+"分");
shutDown.hour.setEnabled(false);
shutDown.minute.setEnabled(false);
shutDown.bStart.setEnabled(false);
shutDown.bCancel.setEnabled(true);
//新建并启动关机线程
shut=new Shut(Byte.parseByte(hour),Byte.parseByte(minute));
shut.start();
}
}
}
/**
* 此类为实现关机操作的类,是一个线程类
* @author Administrator
*
*/
class Shut extends Thread{
//获取当前日期及时间
private Calendar shutTime=Calendar.getInstance();
private Calendar currentTime;
private byte hour=0;
private byte minute=0;
public Shut(byte hour,byte minute){
this.hour=hour;
this.minute=minute;
}
/* 覆写run方法
*
*/
public void run(){
//调用关机时间处理方法
handleTime();
while(!Thread.interrupted()){
//循环获取系统时间
currentTime=Calendar.getInstance();
//如果关机时间在当前时间之前
if(shutTime.before(currentTime)){
//调用关机方法
shutDown();
//退出系统
System.exit(0);
}
try {
//线程休眠一秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 关机方法
*/
private void shutDown() {
String shutdown="shutdown -s";
Runtime rt=Runtime.getRuntime();
try {
rt.exec(shutdown);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 用于计算关机的时间
*/
private void handleTime() {
java.util.Date date=new java.util.Date();
if(date.getHours()hour){
date.setDate(date.getDate()+1);
}if(date.getHours()==hour){
if(date.getMinutes()minute){
date.setDate(date.getDate()+1);
}
}
date.setHours(hour);date.setMinutes(minute);
date.setSeconds(0);
shutTime.setTime(date);
}
}
在Java中如何实现计时的这样一个功能,比如在限定时间完成游戏,没有完成就退出,怎么限定的时间呢?
//可以启动一个线程来做时间计算
//也可以用timer来实现定时 timer使用wait 我这里用sleep
//关键不是用什么而是用线程来解决问题
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Runnable r = new Runnable() {
final long start = System.currentTimeMillis() ;
public void run() {
try {
while(true) {
Thread.sleep(1000);
long now = System.currentTimeMillis();
if(now-start=10000) {
System.out.println("打字时间结束了");
System.exit(0);
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
System.out.println("可以开始打字了,10秒后就不能打了");
Scanner s = new Scanner(System.in);
Thread t = new Thread(r);
t.start();
while(s.hasNext()) {
System.out.println(s.nextLine());
}
}
}
java定时退出的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java定时关机代码、java定时退出的信息别忘了在本站进行查找喔。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。