Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Thread.sleep(10000);
- import java.awt.AWTEvent;
- import java.awt.Component;
- import java.awt.EventQueue;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.awt.event.AWTEventListener;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.SwingUtilities;
- import javax.swing.Timer;
- import javax.swing.UIManager;
- import javax.swing.UnsupportedLookAndFeelException;
- public class AutoClose {
- public static void main(String[] args) {
- new AutoClose();
- }
- private Timer timer;
- private JLabel label;
- private JFrame frame;
- public AutoClose() {
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
- }
- label = new JLabel("Waiting...");
- frame = new JFrame("Testing");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(label);
- frame.setSize(200, 200);
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
- private int count;
- @Override
- public void eventDispatched(AWTEvent event) {
- Object source = event.getSource();
- if (source instanceof Component) {
- Component comp = (Component) source;
- Window win = null;
- if (comp instanceof Window) {
- win = (Window) comp;
- } else {
- win = SwingUtilities.windowForComponent(comp);
- }
- if (win == frame) {
- timer.restart();
- label.setText("Interrupted..." + (++count));
- }
- }
- }
- }, AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.MOUSE_WHEEL_EVENT_MASK);
- timer = new Timer(5000, new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- frame.dispose();
- }
- });
- // You could use a WindowListener to start this
- timer.start();
- }
- });
- }
- }
- private long time;
- ...
- long eventMask = AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK;
- Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
- public void eventDispatched(AWTEvent e) {
- time = System.currentTimeMillis();
- }
- }, eventMask);
- time = System.currentTimeMillis();
- new Thread(new Runnable() {
- @Override
- public void run() {
- while (true) {
- if (System.currentTimeMillis() - time > 10000) {
- widnow.dispose();
- break;
- }
- }
- }
- }).start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement