# Intervall Programmieren ?



## Manuela (6. Feb 2008)

Hallo,
ich soll in ein Programm das für die Buchführung zuständig ist (ich habe auch den Java Code)
einen Intervall programmieren der das Programm sperrt wenn der Anwender eine bestimmte Zeit nichts am Programm macht.

wie könnte ich sowas angehen, oder hat jemand schon einmal so was ähnliches gemacht.

wäre für jede Hilfe dankbar.



Timer oder Thread ?? oder noch was anders 

weil man müßte ja die Tastatur und die Maus überwachen ???

Gruß Manuela


----------



## Ariol (6. Feb 2008)

Ich war mal so frei:


```
package TimerTest;
public abstract class Timer extends Thread
{
	private long	time;

	private long	stopTime;

	public Timer(long time)
	{
		this.time = time;
		reset();
	}

	@Override
	public void run()
	{
		while (System.currentTimeMillis() <= stopTime)
		{
			try
			{
				sleep(100);
			}
			catch (InterruptedException e)
			{
			}
		}
		doAction();
	}

	public synchronized void reset()
	{
		stopTime = System.currentTimeMillis() + time;
	}

	/**
	 * Wird ausgeführt, wenn die Zeit abgelaufen ist.
	 *
	 */
	public abstract void doAction();
}
```

und hier 'ne Testklasse, die zeigt wies funktioniert:

```
package TimerTest;

import java.awt.AWTEvent;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.AWTEventListener;

import javax.swing.JFrame;

public class TimerTest extends JFrame
{
	private Timer	t;

	public TimerTest()
	{
		setPreferredSize(new Dimension(200, 200));
		pack();
		setVisible(true);

		t = new Timer(10000)
		{

			@Override
			public void doAction()
			{

				// LOGOUT hierhin
				System.exit(0);
			}

		};

		// Listener auf die gesamte Anwendung
		Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()
		{
			public void eventDispatched(final AWTEvent e)
			{
				t.reset();
			}
		}, AWTEvent.KEY_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK + AWTEvent.MOUSE_MOTION_EVENT_MASK);

		// TimerThread starten
		t.start();
	}

	public static void main(final String[] args)
	{
		new TimerTest();
	}
}
```


----------



## Manuela (7. Feb 2008)

Hallo Ariol,

danke, dein Code funktioniert super.

da waren meine Überlegungen schon richtig.

Danke
 :toll: 

kann als erledigt angesehen werden.
Ps. wie macht man das ???


----------



## Wildcard (7. Feb 2008)

Manuela hat gesagt.:
			
		

> kann als erledigt angesehen werden.
> Ps. wie macht man das ???


Als 'Gast' natürlich gar nicht. 
*Haken setz*


----------

