日期:2014-05-20  浏览次数:20662 次

用java如何控制弹出窗口在闲置若干秒后自动关闭?
现在有这样一个需求,用java在屏幕右下角弹出一个窗口。就像进入CSDN时那个广告窗口一样。然后如果在一定时间内都不点击关闭按钮,那这个窗口就自动关闭。

请问如何处理“然后如果在一定时间内都不点击关闭按钮,那这个窗口就自动关闭”这个问题?

大家给个思路就行。谢谢!

------解决方案--------------------
弹出窗口可以用javax.swing.JFrame来实现,【在一定时间内都不点击关闭按钮,那这个窗口就自动关闭】这个需求可以用javax.swing.Timer来实现(setInitialDelay方法),比如设置5秒种后关闭窗口,先提示到这里,楼主你好好考虑一下。
------解决方案--------------------
thead.sleep(n秒)
------解决方案--------------------

package 回答;

import java.awt.Color;
import java.awt.Frame; 
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.Timer;

public class CloseWindowIn5 extends Frame implements Runnable{

public void showWindow(){
this.setSize(300, 400);
this.setLocation(100, 100);
this.setBackground(Color.gray);
this.setVisible(true);

}

public static void main(String[] args) {
CloseWindowIn5 clos = new CloseWindowIn5();
new Thread(clos).start();
clos.showWindow();

}

@Override
public void run() {
try {
Thread.sleep(5000);
setVisible(false); //关闭窗口
System.exit(0);
} catch (InterruptedException e) {
e.printStackTrace();
}

}

}

------解决方案--------------------
package 回答;

import java.awt.Color;
import java.awt.Frame; 
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.Timer;

public class CloseWindowIn5 extends Frame implements Runnable{

public void showWindow(){
this.setSize(300, 400);
this.setLocation(100, 100);
this.setBackground(Color.gray);
this.setVisible(true);

}

public static void main(String[] args) {
CloseWindowIn5 clos = new CloseWindowIn5();
new Thread(clos).start();
clos.showWindow();

}

@Override
public void run() {
try {
Thread.sleep(5000);
setVisible(false);
System.exit(0);
} catch (InterruptedException e) {
e.printStackTrace();
}

}

}