java程序暂停
㈠ java中如何暂停一个程序
1.
Thread.sleep(4000);
暂停4000毫秒,也就是四秒,如果像无限暂停那就把4000改成一个足够大的数.
* 注意引入Thread的包,Eclipse或Intellij会自动提示 (我桐尘迅忘了在哪个包了~
2.
可兄友以用java.util.Scanner来要求局此用户输入东西以达到暂停效果,
具体使用方法请网络
㈡ JAVA中如何让程序暂停
看到的回答确实有点不明不白的。楼主估计已经搞定了吧,应该是这么做的
在你想要暂停的地方加上下面这段程序
try{
Thread.sleep(10000);
}catch(Exception e){
}
不需要添加什么包哦,sleep里面的参数就是你要停止的时间,单位是毫秒。
㈢ Java如何让正在运行的线程暂停一段时间
可以使用Thread类的Sleep()方法让线程暂停一段时间。需要注意的是,这并不会让线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable,并且根据线程调度,它将得到执行。
可以使用thread.wait(隐虚)隐敏方法来让线程暂停灶携燃一段时间,wait方法里面填写的是暂停的时间的长度,一毫秒为单位,
㈣ 求教高手:java中如何暂停一个线程中的任务,在以后的可以恢复之前任务的执行。
可以用以下几种方法:
interrupt():中断线程
stop():强迫线程停止执行。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将对其他线程可见,这有可能导致任意的行为。
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。yield()只能使同优先级的线程有执行的机会。----这句是重点
3.书上说yelid()是礼让,是让当前执行线程停下来给别的线程资源, 又说没有任何机制保证会这样。----------没有任何机制保证执行yield()的线程一定会把资源让给其它线程。打个比方:两个人抢东西,A抢到了B没有,再把东西放回去重抢,说不定还是A抢到B没有。没有任何机制保证放回去后B一定能抢到
sleep方法使线程睡眠,但是到一定毫秒数时会自动到cpu中等待
wait方法使线程等待,但是不会自动到cpu中等待,要通过notify或者notifyall方法进行唤醒。
以上是让线程等待的方法,你可以选择适合你程序的方法。
㈤ 我是一个刚接触JAVA不久的新手,遇到一个程序中需要一个暂停/继续按钮,不知道如何实现起功能,希望你能帮帮
在你的类中定义:
JButton pausecontBtn; // 暂停/继续按钮
boolean paused = true; // 是否已经暂停,保存当前按钮的状态
然后在构造函数中:
pausecontBtn = new JButton("Continue");
pausecontBtn.addActionListener(new ActionListener() { /猛迟/ 使用了匿名内部类
@Override
void actionPerformed(ActionEvent e) {
// 这里添加按钮的响应代码
if (paused) {
// 这里实现继续的功能
pausecontBtn.setText("返知灶Continue");
paused = false;
} else {
// 这里实现暂停的功能
pausecontBtn.setText("Pause"漏扮);
paused = true;
}
}
});
㈥ java中如何实现暂停程序,单击按钮继续
1、所谓“暂停”,就是程序暂等待。
2、在java中暂停,有几种方法,如线程旦明wait或是sleep或是yield等,自己网络查一下这些方敏昌法的用模拿告法,就可以解决你的问题了~
试试吧
㈦ JAVA中如何控制线程的启动与暂停
线程的状态表示线程正在进行的活动以及在此时间段内所能完成的任务.线程有创建,可运行,运行中,阻塞,死亡五中状态.一个具有生命的线程,总是处于这五种状态之一:
1.创建状态
使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread)
2.可运行状态
使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable)
3.运行中状态
Java运行系统通过调度选中一个Runnable的线程,使其占有CPU并转为运行中状态(Running).此时,系统真正执行线程的run()方法.
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态(Blocked)
5.死亡状态
线程结束后是死亡状态(Dead)
创建线程和启动线程并不相同,在一个线族歼洞程对新线程的Thread对象调用start()方法之前,这个新线程并没有真正开始执行。Thread对象在其线程真正启动之前就已经存在了,而且其线程退出之后仍然存在。这可以让您控制或获取关于已创建的线程的信息,即使线程还没有启动或已经完成了。
通常在构造器中通过start()启动线程并不是好主意。这样做,会把部分构造的对象暴露给新改庆的线程。如果对象拥有一个线程,那么它应该提供一个启动该线程的start()或init()方法,而不是从构造器中启动它。
结束Java线程
Java线程会以以下三种方式之一结束:
Java线程到达其run()方法的末尾。
Java线程抛出一个未捕获到的Exception或Error。
另一个Java线程调用一个弃用的stop()方法。弃用是指这些方法仍然存在,但是您不应该兆枯在新代码中使用它们,并且应该尽量从现有代码中除去它们。
当Java程序中的所有线程都完成时,程序就退出了。
㈧ java语句暂停
给你尘孝改了一下,在你所示的地方,加了一个线岁兄缓程。
---------------------------------------------------------------------------------------------------
public class xiancheng extends javax.swing.JFrame {
/** Creates new form xiancheng */
public xiancheng() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(30, 40, 81, 25);
jButton2.setText("jButton2");
getContentPane().add(jButton2);
jButton2.setBounds(120, 100, 81, 25);
jButton2.setVisible(false);
jButton3.setText("jButton3");
getContentPane().add(jButton3);
jButton3.setBounds(190, 190, 81, 25);
jButton3.setVisible(false);
setMinimumSize(new java.awt.Dimension(300, 300));
pack();
}/乎模/ </editor-fold>
// GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jButton2.setVisible(true);
// Thread.sleep(5000);// -----在这里加线程暂停是没用的!请问要如何解决这个问题
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
jButton3.setVisible(true);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new xiancheng().setVisible(true);
}
});
}
// GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
// End of variables declaration//GEN-END:variables
}