Countdown 5min bis 0sek Java

stify

Mitglied
Hallo,
mir wurde die Aufgabe erteilt eine Programm mit Java zu schreiben, wo ein Fenster angezeigt wird indem "Bitte das Programm schliessen" steht und darunter ein Countdown von 5min auf 0 läuft. Leider bin ich nicht gerade ein geübter java programmierer. Hat wer brauchbare schnipsel oder sogar ein fertiggestelltes/ähnliches Programm?

Danke für die Hilfe !

LG
 
welche willst du nicht verraten?
bist du bei CountDown.java?
ist auch nur ein Link von vielen
 
Wenns im Fenster angezeigt werden soll wurd ich nen javax.swing.Timer benutzen der alle 1000 millisek die sekunden runterzählt und wenn die sekunden = -1 sind diese wider auf 60 setzt und dafür die minuten verringert.

EDIT: eRaaa war schneller 🙂
 
Hast du Glück dass bei mir gerade Langeweile herrscht 🙂

//EDIT --> die windowClosing Methode hab ich doch glatt vergessen
Java:
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class JFCountDown extends JFrame {
	
	private long countDown = 5 * 60 * 1000;
	
	private JLabel jlCount = null;

	public JFCountDown(){
		super("Countdown");
		guiInit();
		pack();
		setLocationRelativeTo(null);
		addWindowListener(new WindowAdapter() {

                        @Override
			public void windowClosing(WindowEvent e) {
				dispose();
			}

			@Override
			public void windowClosed(WindowEvent e) {
				System.exit(0);
			}
		});
		
		new Thread(new CountDownTimer()).start();
	}
	
	private void guiInit(){
		Container cont = getContentPane();
		cont.setLayout(new GridBagLayout());
		Insets i = new Insets(3, 3, 3, 3);
		GridBagConstraints c = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
				GridBagConstraints.CENTER, GridBagConstraints.NONE, i, 0, 0);
		
		jlCount = new JLabel(getCountDownAsString());
		JButton jbClose = new JButton("Bitte das Programm schliessen");
		
		cont.add(jlCount, c);
		c.gridy++;
		cont.add(jbClose, c);
		jbClose.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				countDown = 0;
				synchronized (JFCountDown.this) {
					JFCountDown.this.notify();
				}								
			}
		});
	}
	
	private String getCountDownAsString(){
		long min = countDown / (60000);
		long sec = (countDown - (min * 60000)) / 1000;
		return min + " min, " + sec + " sec";
	}
	
	private class CountDownTimer implements Runnable{
		public void run() {
			while(countDown > 0){
				countDown-=1000;
				jlCount.setText(getCountDownAsString());
				synchronized(JFCountDown.this){
					try {
						JFCountDown.this.wait(1000);
					} catch (InterruptedException e) {					
					}
				}
			}
			if(countDown == 0){
				JFCountDown.this.dispose();
			}
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			
			public void run() {
				new JFCountDown().setVisible(true);				
			}
		});
		

	}

}
 
Zuletzt bearbeitet:

Zurück
Oben