Timer

bruce85

Bekanntes Mitglied
Hallo,
ich habe ein kleines Problem mit meinem Programm und zwar benutze ich einen Timer, der jede Sekunde ausgeführt wird:
Java:
public void init() {
    timer = new Timer(1000,this);
}
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == timer) {
        sekunden = sekunden + 1;
        repaint();
    }
}

Wenn ich jetzt im WebBrowser mein Programm teste, dann funktioniert alles soweit, nur wenn ich z.B. den WebBrowser aktualisiere, dann wird ja eigentlich das Programm neu geladen...
So weit so gut, jetzt ist mir aufgefallen, dass der Timer irgendwie im hintergund läuft, weil wenn ich es neu geladen habe, dann zählt zwar die Sekunde wieder von 0 aber der Timer davor ist auch nocht irgendwie aktiv, da die Sekunde mal 1 dann 12 dann 2 dann 13 anzeigt u.s.w. nur wenn ich den Browser komplett beende und es wieder neu öffne, dann funktioniert es wieder einmal und dann geht das gleiche wieder von vorne los.

Hab ich Vielleicht irgendwas falsch gemacht?

Ich danke euch schonmal für die Hilfe.

MfG
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Schau mal ob du beim Applet die Methode 'stop' überschreiben kannst, so dass dort drin auch 'timer.stop()' aufgerufen wird.
 

bruce85

Bekanntes Mitglied
Danke Dir.

Der Timer wird ja gestoppt mit timer.stop(); an einer gewissen stelle.
Ich versteh es nur nicht, wieso der Timer dann später dort weiterläuft, auch wenn ich MozillaFirefox neu lade also neu aktualisiere.

Woran könnte das denn liegen?

MfG
 

bandy

Bekanntes Mitglied
Danke Dir.

Der Timer wird ja gestoppt mit timer.stop(); an einer gewissen stelle.
Ich versteh es nur nicht, wieso der Timer dann später dort weiterläuft, auch wenn ich MozillaFirefox neu lade also neu aktualisiere.

Woran könnte das denn liegen?

MfG
Ich wuerde an deiner Stelle mehr von dem Code zeigen, so koennen wir dir nicht viel helfen
 

bruce85

Bekanntes Mitglied
OK, ich werde einfach mal den kompletten Code von meiner Klasse Posten.

Java:
import java.awt.*;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseListener;
import javax.swing.JComponent;
import javax.swing.Timer;
import java.awt.event.*;

public class SolitaireCanvas extends JComponent implements MouseMotionListener,MouseListener,ActionListener  {	
    TSpielfeld[][] Spielfeld;
    private Image kugelImage=null;
    private Image kugelImage2=null;
    private Image lochImage=null;
    private Image spielbrettImage=null;
    private Image backgroundImage=null;
    private int mapX=100;
    private int mapY=20;
    private int feldXAnz=7;
    private int feldYAnz=7;
    private int moeglicheZuegeAnz;
    private static int verbleibendeKugelAnz;
    private Timer timer;
    private int sekunden=0;
    private int minuten=0;
    private int stunden=0;
    private static String zeit="00:00:00";
    private int mX, mY;
    private int tmpmX, tmpmY;
    private boolean mKlick;
    private int merkFeldX;
    private int merkFeldY;
    private int mouseFeldX;
    private int mouseFeldY;
    private int feldX;
    private int feldY;
    
    //Spielfeld klasse
	class TSpielfeld {
        int frames;
        int aktiv;
        public void TSpielfeld() {}
    }
	
	//Konstruktor
    public SolitaireCanvas() {
        addMouseListener(this);
        addMouseMotionListener(this);
        init();
    }
	
	//Initialisierung
    public void init() {
        Spielfeld = new TSpielfeld[feldXAnz][feldYAnz];
        for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                Spielfeld[x][y] = new TSpielfeld();
                Spielfeld[x][y].frames = 1;
                Spielfeld[x][y].aktiv = 1;
                if (((x >= 0) && (x <= 1)) && ((y >= 0) && (y <= 1))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 5) && (x <= 6)) && ((y >= 0) && (y <= 1))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 0) && (x <= 1)) && ((y >= 5) && (y <= 6))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 5) && (x <= 6)) && ((y >= 5) && (y <= 6))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
            }
        }
        Spielfeld[3][3].frames = 2;
        Spielfeld[3][3].aktiv = 1;
        
        ImageIcon b1 = new ImageIcon(Game.class.getResource("img/kugel.png"));
        ImageIcon b2 = new ImageIcon(Game.class.getResource("img/kugel2.png"));
        ImageIcon b3 = new ImageIcon(Game.class.getResource("img/loch.png"));
        ImageIcon b4 = new ImageIcon(Game.class.getResource("img/spielbrett.png"));
        ImageIcon b5 = new ImageIcon(Game.class.getResource("img/background.png"));
        kugelImage = b1.getImage();
        kugelImage2 = b2.getImage();
        lochImage = b3.getImage();
        spielbrettImage = b4.getImage();
        backgroundImage = b5.getImage();

        MediaTracker mt = new MediaTracker(this);
        mt.addImage(kugelImage, 0);
        mt.addImage(kugelImage2, 1);
        mt.addImage(lochImage, 2);
        mt.addImage(spielbrettImage, 3);
        mt.addImage(backgroundImage, 4);
        try {
            mt.waitForAll();
        } catch (Exception e) {  }
        moeglicheZuegeAnz = checkZugAnz();
        verbleibendeKugelAnz = checkKugelAnz();
        
        timer = new Timer(1000,this);
    }
    
    //Timer
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == timer) {
			//System.out.println ("\007Being ticked " + Calendar.getInstance().getTime());
			sekunden = sekunden + 1;
			if (sekunden > 59) {
				minuten = minuten + 1;
				sekunden = 0;
			}
			if (minuten > 59) {
				stunden = stunden + 1;
				minuten = 0;
				sekunden = 0;
			}
			if ((stunden < 10) && (minuten < 10) && (sekunden < 10)) {
				zeit = "0"+stunden+":0"+minuten+":0"+sekunden;
			}
			if ((stunden > 9) && (minuten < 10) && (sekunden < 10)) {
				zeit = stunden+":0"+minuten+":0"+sekunden;
			}
			if ((stunden < 10) && (minuten > 9) && (sekunden < 10)) {
				zeit = "0"+stunden+":"+minuten+":0"+sekunden;
			}
			if ((stunden < 10) && (minuten < 10) && (sekunden > 9)) {
				zeit = "0"+stunden+":0"+minuten+":"+sekunden;
			}
			if ((stunden < 10) && (minuten > 9) && (sekunden > 9)) {
				zeit = "0"+stunden+":"+minuten+":"+sekunden;
			}
			if ((stunden > 9) && (minuten < 10) && (sekunden > 9)) {
				zeit = stunden+":0"+minuten+":"+sekunden;
			}
			if ((stunden > 9) && (minuten > 9) && (sekunden < 10)) {
				zeit = stunden+":"+minuten+":0"+sekunden;
			}
			if ((stunden > 9) && (minuten > 9) && (sekunden > 9)) {
				zeit = stunden+":"+minuten+":"+sekunden;
			}
			repaint();
	    }
	}
	//um später außerhalb der klasse auf die variable zuzugreifen
    static int getVerbleibendeKugelAnz() {
        return verbleibendeKugelAnz;
    }
    static String getZeit() {
        return zeit;
    }

    public void mouseMoved(MouseEvent e) {
        mX = (int) e.getPoint().getX();
        mY = (int) e.getPoint().getY();
        repaint();
    }

    public void mouseDragged(MouseEvent e) {
        mX = (int) e.getPoint().getX();
        mY = (int) e.getPoint().getY();
        repaint();
    }
    
    public void mousePressed(MouseEvent e) {
    	if (!anMaus) {
    		mX = (int) e.getPoint().getX();
    		mY = (int) e.getPoint().getY();
    		mKlick = true;
    		repaint();
    	}
    }
    
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseClicked(MouseEvent e) {}
      
    private boolean anMaus;
    public void mouseReleased(MouseEvent e) {
        mKlick = false;
        if (anMaus){
            if (checkZug()) {
                Spielfeld[feldX][feldY].frames = 1;
                anMaus = false;
            } else {
                Spielfeld[merkFeldX][merkFeldY].frames = 1;
                anMaus = false;
            }
            tmpmX = 0;
            tmpmY = 0;
        
            moeglicheZuegeAnz = checkZugAnz();
            verbleibendeKugelAnz = checkKugelAnz();
            if (moeglicheZuegeAnz == 0) {
            	timer.stop();
            	Input input = new Input();
            }
        }
        repaint();
    }

    public int checkKugelAnz() {
    	int z=0;
    	for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames == 1) {
                    	z = z + 1;
                    }
                }
            }
        }
    	return z;
    }
    public int checkZugAnz() {
    	int z=0;
    	for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames == 1) {
                    	if (x < feldXAnz-2) {
							if ((Spielfeld[x+1][y].frames == 1) && (Spielfeld[x+2][y].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (x > 1) {
							if ((Spielfeld[x-1][y].frames == 1) && (Spielfeld[x-2][y].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (y < feldYAnz-2) {
							if ((Spielfeld[x][y+1].frames == 1) && (Spielfeld[x][y+2].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (y > 1) {
							if ((Spielfeld[x][y-1].frames == 1) && (Spielfeld[x][y-2].frames == 2)) {
								z = z + 1;
							}
						}
                    }
                }
            }
    	}
    	return z;
    }
    
    public boolean checkZug() {
        if (mouseFeldX == 0) {
            if (mouseFeldY == 2) {
                if ((Spielfeld[merkFeldX][merkFeldY-1].frames == 1) && (Spielfeld[merkFeldX][merkFeldY-2].frames == 2)) {
                    Spielfeld[merkFeldX][merkFeldY-1].frames = 2;
                    return true;
                }
            }
            if (mouseFeldY == -2) {
                if ((Spielfeld[merkFeldX][merkFeldY+1].frames == 1) && (Spielfeld[merkFeldX][merkFeldY+2].frames == 2)) {
                    Spielfeld[merkFeldX][merkFeldY+1].frames = 2;
                    return true;
                }
            }
        }
        if (mouseFeldY == 0) {
            if (mouseFeldX == 2) {
                if ((Spielfeld[merkFeldX-1][merkFeldY].frames == 1) && (Spielfeld[merkFeldX-2][merkFeldY].frames == 2)) {
                    Spielfeld[merkFeldX-1][merkFeldY].frames = 2;
                    return true;
                }
            }
            if (mouseFeldX == -2) {
                if ((Spielfeld[merkFeldX+1][merkFeldY].frames == 1) && (Spielfeld[merkFeldX+2][merkFeldY].frames == 2)) {
                    Spielfeld[merkFeldX+1][merkFeldY].frames = 2;
                    return true;
                }
            }
        }
        return false;
    }

    public void paint(Graphics g) {
    	g.drawImage(backgroundImage, 0, 0, null);
        int gameWidth1 = ((feldXAnz*33)+((feldXAnz-1)*14));
        int gameHeight1 = ((feldYAnz*33)+((feldYAnz-1)*14));
        mapX = ((getWidth()/2)-(gameWidth1/2));
        mapY = ((getHeight()/2)-(gameHeight1/2));
        g.setColor(Color.lightGray);
        //g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(Color.lightGray);
        g.drawImage(spielbrettImage, (getWidth()/2)-(400/2),(getHeight()/2)-(400/2), null);
        for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames > 0) {
                        if (Spielfeld[x][y].frames == 1) g.drawImage(kugelImage, mapX+(x*33)+((x/1)*14), mapY+(y*33)+((y/1)*14), null);
                        if (Spielfeld[x][y].frames == 2) g.drawImage(lochImage, mapX+(x*33)+((x/1)*14)+2, mapY+(y*33)+((y/1)*14)+2, null);
                        g.setColor(Color.gray);
                        if ((mX > mapX+(x*33)+((x/1)*14)) && (mX < mapX+(x*33)+((x/1)*14)+33)) {
                            if ((mY > mapY+(y*33)+((y/1)*14)) && (mY < mapY+(y*33)+((y/1)*14)+33)) {
                            	if (moeglicheZuegeAnz > 0) {
	                                if (!anMaus) if (Spielfeld[x][y].frames == 1) g.drawImage(kugelImage2, mapX+(x*33)+((x/1)*14)-1, mapY+(y*33)+((y/1)*14)-1, null);
	                                g.setColor(Color.red);
	                                feldX = x;
	                                feldY = y;
	                                if (Spielfeld[x][y].frames == 1) {
	                                    if (mKlick) {
	                                        merkFeldX = x;
	                                        merkFeldY = y;
	                                        Spielfeld[x][y].frames = 2;
	                                        tmpmX = (mapX+(x*33)+((x/1)*14))-(mX);
	                                        tmpmY = (mapY+(y*33)+((y/1)*14))-(mY);
	                                        anMaus = true;
	                                        mKlick = false;
	                                        if (!timer.isRunning()) timer.start();
	                                        repaint();
	                                    }
	                                }
	                                mouseFeldX = (merkFeldX-feldX);
	                                mouseFeldY = (merkFeldY-feldY);
	                                repaint();
                            	}
                            }
                        }
                    }
                }
            }
        }
        if (anMaus) {
            tmpmX = -16;
            tmpmY = -16;
            g.drawImage(kugelImage2, mX+tmpmX-1,mY+tmpmY-1, null);
        }
        g.setColor(Color.black);
        //g.drawString("Maus Pos: "+mX+"|"+mY, 10, 310);
        //g.drawString("Maus Klick: "+mKlick, 10, 330);
        //g.drawString("Maus Feld: "+mouseFeldX+"|"+mouseFeldY, 10, 350);
        //g.drawString("Merk Feld: "+merkFeldX+"|"+merkFeldY, 100, 350);
        //g.drawString("Feld: "+feldX+"|"+feldY, 210, 350);
        //g.drawString("tmpm: "+tmpmY+"|"+tmpmY, 280, 350);
        Font f = new Font("Comic Sans MS",0,14);
        FontMetrics fm = getFontMetrics(f);
        g.setFont(f);
        g.drawString("Mögliche Züge vorhanden: "+moeglicheZuegeAnz,(getWidth()/2)-(fm.stringWidth("Mögliche Züge vorhanden: "+moeglicheZuegeAnz)/2), 50);
        g.drawString("Zeit: "+zeit,(getWidth()/2)-(fm.stringWidth("Zeit: "+zeit)/2), 80);
        g.drawString("Verbleibende Kugeln: "+verbleibendeKugelAnz, 20, 540);
    }
}

Ich habe nicht viel Kommentare drin stehen, deshalb hoffe ich, Ihr könnt es gut lesen. :D
Den Timer erstelle ich in Zeile 106 und in Zeile 111 läuft dann der Timer, in Zeile 200 wird der Timer dann gestoppt, wenn das Spiel zuende ist.
Das mit dem Stoppen funktioniert ja, nur habe ich noch kein Button integriert, indem man das Spiel neu starten kann, deshalb lade ich dann immer den Browser neu, damit das Spiel erneut geladen wird.
Ich verstehe dann blos nicht, wieso nur der Timer an der stelle weiter läuft, indem es vorhin gestoppt war, alles andere ist ja auf 0, bis auf den Timer.

Sry, ich bin erst seit paar tagen wieder dabei mit Java zu Programmieren, deshalb entschuldige ich mich, wenn im Code alles durcheinander ist.

Edit: Der Timer wird dann in Zeile 318 gestartet.

Danke euch schonmal.

MfG
 
Zuletzt bearbeitet:

bandy

Bekanntes Mitglied
OK, ich werde einfach mal den kompletten Code von meiner Klasse Posten.

Java:
import java.awt.*;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseListener;
import javax.swing.JComponent;
import javax.swing.Timer;
import java.awt.event.*;

public class SolitaireCanvas extends JComponent implements MouseMotionListener,MouseListener,ActionListener  {	
    TSpielfeld[][] Spielfeld;
    private Image kugelImage=null;
    private Image kugelImage2=null;
    private Image lochImage=null;
    private Image spielbrettImage=null;
    private Image backgroundImage=null;
    private int mapX=100;
    private int mapY=20;
    private int feldXAnz=7;
    private int feldYAnz=7;
    private int moeglicheZuegeAnz;
    private static int verbleibendeKugelAnz;
    private Timer timer;
    private int sekunden=0;
    private int minuten=0;
    private int stunden=0;
    private static String zeit="00:00:00";
    private int mX, mY;
    private int tmpmX, tmpmY;
    private boolean mKlick;
    private int merkFeldX;
    private int merkFeldY;
    private int mouseFeldX;
    private int mouseFeldY;
    private int feldX;
    private int feldY;
    
    //Spielfeld klasse
	class TSpielfeld {
        int frames;
        int aktiv;
        public void TSpielfeld() {}
    }
	
	//Konstruktor
    public SolitaireCanvas() {
        addMouseListener(this);
        addMouseMotionListener(this);
        init();
    }
	
	//Initialisierung
    public void init() {
        Spielfeld = new TSpielfeld[feldXAnz][feldYAnz];
        for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                Spielfeld[x][y] = new TSpielfeld();
                Spielfeld[x][y].frames = 1;
                Spielfeld[x][y].aktiv = 1;
                if (((x >= 0) && (x <= 1)) && ((y >= 0) && (y <= 1))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 5) && (x <= 6)) && ((y >= 0) && (y <= 1))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 0) && (x <= 1)) && ((y >= 5) && (y <= 6))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
                if (((x >= 5) && (x <= 6)) && ((y >= 5) && (y <= 6))) {
                    Spielfeld[x][y].frames = 0;
                    Spielfeld[x][y].aktiv = 0;
                }
            }
        }
        Spielfeld[3][3].frames = 2;
        Spielfeld[3][3].aktiv = 1;
        
        ImageIcon b1 = new ImageIcon(Game.class.getResource("img/kugel.png"));
        ImageIcon b2 = new ImageIcon(Game.class.getResource("img/kugel2.png"));
        ImageIcon b3 = new ImageIcon(Game.class.getResource("img/loch.png"));
        ImageIcon b4 = new ImageIcon(Game.class.getResource("img/spielbrett.png"));
        ImageIcon b5 = new ImageIcon(Game.class.getResource("img/background.png"));
        kugelImage = b1.getImage();
        kugelImage2 = b2.getImage();
        lochImage = b3.getImage();
        spielbrettImage = b4.getImage();
        backgroundImage = b5.getImage();

        MediaTracker mt = new MediaTracker(this);
        mt.addImage(kugelImage, 0);
        mt.addImage(kugelImage2, 1);
        mt.addImage(lochImage, 2);
        mt.addImage(spielbrettImage, 3);
        mt.addImage(backgroundImage, 4);
        try {
            mt.waitForAll();
        } catch (Exception e) {  }
        moeglicheZuegeAnz = checkZugAnz();
        verbleibendeKugelAnz = checkKugelAnz();
        
        timer = new Timer(1000,this);
    }
    
    //Timer
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == timer) {
			//System.out.println ("\007Being ticked " + Calendar.getInstance().getTime());
			sekunden = sekunden + 1;
			if (sekunden > 59) {
				minuten = minuten + 1;
				sekunden = 0;
			}
			if (minuten > 59) {
				stunden = stunden + 1;
				minuten = 0;
				sekunden = 0;
			}
			if ((stunden < 10) && (minuten < 10) && (sekunden < 10)) {
				zeit = "0"+stunden+":0"+minuten+":0"+sekunden;
			}
			if ((stunden > 9) && (minuten < 10) && (sekunden < 10)) {
				zeit = stunden+":0"+minuten+":0"+sekunden;
			}
			if ((stunden < 10) && (minuten > 9) && (sekunden < 10)) {
				zeit = "0"+stunden+":"+minuten+":0"+sekunden;
			}
			if ((stunden < 10) && (minuten < 10) && (sekunden > 9)) {
				zeit = "0"+stunden+":0"+minuten+":"+sekunden;
			}
			if ((stunden < 10) && (minuten > 9) && (sekunden > 9)) {
				zeit = "0"+stunden+":"+minuten+":"+sekunden;
			}
			if ((stunden > 9) && (minuten < 10) && (sekunden > 9)) {
				zeit = stunden+":0"+minuten+":"+sekunden;
			}
			if ((stunden > 9) && (minuten > 9) && (sekunden < 10)) {
				zeit = stunden+":"+minuten+":0"+sekunden;
			}
			if ((stunden > 9) && (minuten > 9) && (sekunden > 9)) {
				zeit = stunden+":"+minuten+":"+sekunden;
			}
			repaint();
	    }
	}
	//um später außerhalb der klasse auf die variable zuzugreifen
    static int getVerbleibendeKugelAnz() {
        return verbleibendeKugelAnz;
    }
    static String getZeit() {
        return zeit;
    }

    public void mouseMoved(MouseEvent e) {
        mX = (int) e.getPoint().getX();
        mY = (int) e.getPoint().getY();
        repaint();
    }

    public void mouseDragged(MouseEvent e) {
        mX = (int) e.getPoint().getX();
        mY = (int) e.getPoint().getY();
        repaint();
    }
    
    public void mousePressed(MouseEvent e) {
    	if (!anMaus) {
    		mX = (int) e.getPoint().getX();
    		mY = (int) e.getPoint().getY();
    		mKlick = true;
    		repaint();
    	}
    }
    
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseClicked(MouseEvent e) {}
      
    private boolean anMaus;
    public void mouseReleased(MouseEvent e) {
        mKlick = false;
        if (anMaus){
            if (checkZug()) {
                Spielfeld[feldX][feldY].frames = 1;
                anMaus = false;
            } else {
                Spielfeld[merkFeldX][merkFeldY].frames = 1;
                anMaus = false;
            }
            tmpmX = 0;
            tmpmY = 0;
        
            moeglicheZuegeAnz = checkZugAnz();
            verbleibendeKugelAnz = checkKugelAnz();
            if (moeglicheZuegeAnz == 0) {
            	timer.stop();
            	Input input = new Input();
            }
        }
        repaint();
    }

    public int checkKugelAnz() {
    	int z=0;
    	for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames == 1) {
                    	z = z + 1;
                    }
                }
            }
        }
    	return z;
    }
    public int checkZugAnz() {
    	int z=0;
    	for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames == 1) {
                    	if (x < feldXAnz-2) {
							if ((Spielfeld[x+1][y].frames == 1) && (Spielfeld[x+2][y].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (x > 1) {
							if ((Spielfeld[x-1][y].frames == 1) && (Spielfeld[x-2][y].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (y < feldYAnz-2) {
							if ((Spielfeld[x][y+1].frames == 1) && (Spielfeld[x][y+2].frames == 2)) {
								z = z + 1;
							}
						}
                    	if (y > 1) {
							if ((Spielfeld[x][y-1].frames == 1) && (Spielfeld[x][y-2].frames == 2)) {
								z = z + 1;
							}
						}
                    }
                }
            }
    	}
    	return z;
    }
    
    public boolean checkZug() {
        if (mouseFeldX == 0) {
            if (mouseFeldY == 2) {
                if ((Spielfeld[merkFeldX][merkFeldY-1].frames == 1) && (Spielfeld[merkFeldX][merkFeldY-2].frames == 2)) {
                    Spielfeld[merkFeldX][merkFeldY-1].frames = 2;
                    return true;
                }
            }
            if (mouseFeldY == -2) {
                if ((Spielfeld[merkFeldX][merkFeldY+1].frames == 1) && (Spielfeld[merkFeldX][merkFeldY+2].frames == 2)) {
                    Spielfeld[merkFeldX][merkFeldY+1].frames = 2;
                    return true;
                }
            }
        }
        if (mouseFeldY == 0) {
            if (mouseFeldX == 2) {
                if ((Spielfeld[merkFeldX-1][merkFeldY].frames == 1) && (Spielfeld[merkFeldX-2][merkFeldY].frames == 2)) {
                    Spielfeld[merkFeldX-1][merkFeldY].frames = 2;
                    return true;
                }
            }
            if (mouseFeldX == -2) {
                if ((Spielfeld[merkFeldX+1][merkFeldY].frames == 1) && (Spielfeld[merkFeldX+2][merkFeldY].frames == 2)) {
                    Spielfeld[merkFeldX+1][merkFeldY].frames = 2;
                    return true;
                }
            }
        }
        return false;
    }

    public void paint(Graphics g) {
    	g.drawImage(backgroundImage, 0, 0, null);
        int gameWidth1 = ((feldXAnz*33)+((feldXAnz-1)*14));
        int gameHeight1 = ((feldYAnz*33)+((feldYAnz-1)*14));
        mapX = ((getWidth()/2)-(gameWidth1/2));
        mapY = ((getHeight()/2)-(gameHeight1/2));
        g.setColor(Color.lightGray);
        //g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(Color.lightGray);
        g.drawImage(spielbrettImage, (getWidth()/2)-(400/2),(getHeight()/2)-(400/2), null);
        for (int y=0; y<feldYAnz; y++) {
            for (int x=0; x<feldXAnz; x++) {
                if (Spielfeld[x][y].aktiv == 1) {
                    if (Spielfeld[x][y].frames > 0) {
                        if (Spielfeld[x][y].frames == 1) g.drawImage(kugelImage, mapX+(x*33)+((x/1)*14), mapY+(y*33)+((y/1)*14), null);
                        if (Spielfeld[x][y].frames == 2) g.drawImage(lochImage, mapX+(x*33)+((x/1)*14)+2, mapY+(y*33)+((y/1)*14)+2, null);
                        g.setColor(Color.gray);
                        if ((mX > mapX+(x*33)+((x/1)*14)) && (mX < mapX+(x*33)+((x/1)*14)+33)) {
                            if ((mY > mapY+(y*33)+((y/1)*14)) && (mY < mapY+(y*33)+((y/1)*14)+33)) {
                            	if (moeglicheZuegeAnz > 0) {
	                                if (!anMaus) if (Spielfeld[x][y].frames == 1) g.drawImage(kugelImage2, mapX+(x*33)+((x/1)*14)-1, mapY+(y*33)+((y/1)*14)-1, null);
	                                g.setColor(Color.red);
	                                feldX = x;
	                                feldY = y;
	                                if (Spielfeld[x][y].frames == 1) {
	                                    if (mKlick) {
	                                        merkFeldX = x;
	                                        merkFeldY = y;
	                                        Spielfeld[x][y].frames = 2;
	                                        tmpmX = (mapX+(x*33)+((x/1)*14))-(mX);
	                                        tmpmY = (mapY+(y*33)+((y/1)*14))-(mY);
	                                        anMaus = true;
	                                        mKlick = false;
	                                        if (!timer.isRunning()) timer.start();
	                                        repaint();
	                                    }
	                                }
	                                mouseFeldX = (merkFeldX-feldX);
	                                mouseFeldY = (merkFeldY-feldY);
	                                repaint();
                            	}
                            }
                        }
                    }
                }
            }
        }
        if (anMaus) {
            tmpmX = -16;
            tmpmY = -16;
            g.drawImage(kugelImage2, mX+tmpmX-1,mY+tmpmY-1, null);
        }
        g.setColor(Color.black);
        //g.drawString("Maus Pos: "+mX+"|"+mY, 10, 310);
        //g.drawString("Maus Klick: "+mKlick, 10, 330);
        //g.drawString("Maus Feld: "+mouseFeldX+"|"+mouseFeldY, 10, 350);
        //g.drawString("Merk Feld: "+merkFeldX+"|"+merkFeldY, 100, 350);
        //g.drawString("Feld: "+feldX+"|"+feldY, 210, 350);
        //g.drawString("tmpm: "+tmpmY+"|"+tmpmY, 280, 350);
        Font f = new Font("Comic Sans MS",0,14);
        FontMetrics fm = getFontMetrics(f);
        g.setFont(f);
        g.drawString("Mögliche Züge vorhanden: "+moeglicheZuegeAnz,(getWidth()/2)-(fm.stringWidth("Mögliche Züge vorhanden: "+moeglicheZuegeAnz)/2), 50);
        g.drawString("Zeit: "+zeit,(getWidth()/2)-(fm.stringWidth("Zeit: "+zeit)/2), 80);
        g.drawString("Verbleibende Kugeln: "+verbleibendeKugelAnz, 20, 540);
    }
}

Ich habe nicht viel Kommentare drin stehen, deshalb hoffe ich, Ihr könnt es gut lesen. :D
Den Timer erstelle ich in Zeile 106 und in Zeile 111 läuft dann der Timer, in Zeile 200 wird der Timer dann gestoppt, wenn das Spiel zuende ist.
Das mit dem Stoppen funktioniert ja, nur habe ich noch kein Button integriert, indem man das Spiel neu starten kann, deshalb lade ich dann immer den Browser neu, damit das Spiel erneut geladen wird.
Ich verstehe dann blos nicht, wieso nur der Timer an der stelle weiter läuft, indem es vorhin gestoppt war, alles andere ist ja auf 0, bis auf den Timer.

Sry, ich bin erst seit paar tagen wieder dabei mit Java zu Programmieren, deshalb entschuldige ich mich, wenn im Code alles durcheinander ist.

Edit: Der Timer wird dann in Zeile 318 gestartet.

Danke euch schonmal.

MfG

was ist das hier

Java:
 ImageIcon b1 = new ImageIcon(Game.class.getResource("img/kugel.png"));

Was ist Game und warum kommt danach class? Das kann bei dir sicher nicht funktionieren?
 

turtle

Top Contributor
Ich fand den Hinweis von Marco13 gut und mein Link gibt auch den Grund dafür an. Wenn Du die Seite in Firefox reloadest wird stop() aufgerufen und in dieser Methode solltest Du den Timer stoppen.

Dein Hinweis, dass Du den Timer in Deiner Komponente stoppst ist zwar schön, hält sich aber nicht an das LifeCycle-Verhalten von Applets.
 

bruce85

Bekanntes Mitglied
Danke euch.

was ist das hier

Java:
 ImageIcon b1 = new ImageIcon(Game.class.getResource("img/kugel.png"));

Was ist Game und warum kommt danach class? Das kann bei dir sicher nicht funktionieren?

Game ist die Hauptklasse von meinem Projekt, es funktioniert ja alles, bis auf den Timer.

Ich werds einfach nochmal versuchen.

MfG
 

bruce85

Bekanntes Mitglied
Hier ist die Klasse:
Game.java
Java:
import javax.swing.*;

public class Game extends JApplet{
	public void init() {
		setSize(600,600);
        add(new SolitaireCanvas());
        setVisible(true);
	}
}

Danke schonmal.

MfG
 

bandy

Bekanntes Mitglied
Und was ist das

Java:
Input input = new Input();

das wird naemlich rot bei mir markiert:)
 
G

Gast2

Gast
In der Klasse Game musst du, wie schon mehrfach erwähnt, die stop() Methode überschreiben in der du dann deinen Timer stoppst. Dazu muss die Game Klasse natürlich irgendwie zugriff auf den Timer bekommen.
 

Helgon

Bekanntes Mitglied
Oder du löst es anders

12.3.6 Das Ende eines Threads

Es gibt Threads, die dauernd laufen, weil sie zum Beispiel Serverfunktionen implementieren.
Andere Threads führen einmalig eine Operation aus und sind danach beendet.
Allgemein ist ein Thread beendet, wenn eine der folgenden Bedingungen zutrifft:

Þ Die run()-Methode wurde ohne Fehler beendet. Wenn wir eine Endlosschleife programmieren,
würde diese potenziell einen nie endenden Thread bilden.

Þ In der run()-Methode tritt eine RuntimeException auf, die die Methode beendet. Das
beendet weder die anderen Threads noch die JVM als Ganzes.

Þ Der Thread wurde von außen abgebrochen. Dazu dient die prinzipbedingt problematische
Methode stop(), von deren Verwendung abgeraten wird und die auch veraltet
ist.

Þ Die virtuelle Maschine wird beendet und nimmt alle Threads mit ins Grab.
 
Zuletzt bearbeitet:

bruce85

Bekanntes Mitglied
Und was ist das

Java:
Input input = new Input();

das wird naemlich rot bei mir markiert:)

Das ist nicht wichtig, das kann man entfernen.
Das ist nur eine Klasse von mir, die einen Input Fenster aufruft um sich in die Highscoreliste einzutragen.

Ich würde gerne das Spiel mal zeigen, damit man es erkennt wegen dem Timer, aber ich weiss nicht, ob es dann als Werbung betrachtet wird.

Ich versuche mal mit dem überschreiben.

Ich danke euch.

MfG
 

bruce85

Bekanntes Mitglied
Ich hab das jetzt mit Threads gelöst, nur muss ich noch den Thread stoppen, wenn das Applet beendet wurde.
Wie könnte ich das machen?
Also das bei beendigung des Applets stop(); aufgerufen wird.

Danke schonmal.

MfG
 

TKausL

Top Contributor
Java:
timer.stop();

Das solltest du nutzen.

Ist ja kein Selbst geschriebener Thread den man übrigens mit flag beenden sollte, sondern ein Timer, welcher mit stop() beendet wird.
 

bruce85

Bekanntes Mitglied
Hallo nochmal,
das funktioniert ja mit dem Stoppen wenn ich im Spiel den Timer stoppe mit timer.stop(); nur wenn der Timer noch läuft und ich dann einfach mal die Seite bei Firefox neu lade, dann läuft der Timer einfach weiter.
Wie kann ich prüfen ob der Timer dann noch läuft und das ich dann erst die Timers beende bevor ich ein neue Timer erstelle?

Ich hab wirklich schon viel versucht mit interrupt() u.s.w., funktioniert alles nicht.

Danke schonmal.

MfG
 

bruce85

Bekanntes Mitglied
Weiss denn niemand ne Lösung?

Hier mal ein Video, wie es dann aussieht:
timer - YouTube

Sobald ich bei FireFox die Seite wo mein Spiel eingebunden ist, aktualisiere, dann läuft der Timer im Hintergrund weiter.
In Java VisualVM unter Table sind die Timer vorhanden und beenden sich nicht, wenn die Seite neu geladen wird bei FireFox.
Es kann möglich sein, das man mitten im Spiel einfach die Seite neu ladet um schnell ein neues Spiel zu starten, aber dann laufen die Timer im Hintergrund einfach weiter, die erstellt wurden.

Edit: Im Java VisualVM ist sogar ein Timer von mir drin, der schon fast 8 Stunden läuft, obwohl ich Forefox schon merhfach neu gestartet habe.
Wie kann man die Timers am einfachsten beenden, sobald das Spiel neu geladen bzw. FireFox beendet wird?

Edit2: Hier mal der Code, wo der Timer dann läuft:
Java:
    //Timer
    public synchronized void actionPerformed(ActionEvent e) {
        if (e.getSource() == timer) {
            //System.out.println ("\007Being ticked " + Calendar.getInstance().getTime());
            sekunden = sekunden + 1;
            if (sekunden > 59) {
                minuten = minuten + 1;
                sekunden = 0;
            }
            if (minuten > 59) {
                stunden = stunden + 1;
                minuten = 0;
                sekunden = 0;
            }
            if ((stunden < 10) && (minuten < 10) && (sekunden < 10)) {
                zeit = "0"+stunden+":0"+minuten+":0"+sekunden;
            }
            if ((stunden > 9) && (minuten < 10) && (sekunden < 10)) {
                zeit = stunden+":0"+minuten+":0"+sekunden;
            }
            if ((stunden < 10) && (minuten > 9) && (sekunden < 10)) {
                zeit = "0"+stunden+":"+minuten+":0"+sekunden;
            }
            if ((stunden < 10) && (minuten < 10) && (sekunden > 9)) {
                zeit = "0"+stunden+":0"+minuten+":"+sekunden;
            }
            if ((stunden < 10) && (minuten > 9) && (sekunden > 9)) {
                zeit = "0"+stunden+":"+minuten+":"+sekunden;
            }
            if ((stunden > 9) && (minuten < 10) && (sekunden > 9)) {
                zeit = stunden+":0"+minuten+":"+sekunden;
            }
            if ((stunden > 9) && (minuten > 9) && (sekunden < 10)) {
                zeit = stunden+":"+minuten+":0"+sekunden;
            }
            if ((stunden > 9) && (minuten > 9) && (sekunden > 9)) {
                zeit = stunden+":"+minuten+":"+sekunden;
            }
            repaint();
        }
    }

Danke schonmal.

MfG
 
Zuletzt bearbeitet:

bruce85

Bekanntes Mitglied
Danke Dir.
Das ist es aber nicht was ich brauche.
Ich lass ja einen Timer hochzählen und brauch ja keine Uhrzeit.

Edit: Sry, ich hab dich falsch verstanden, du meinst ja wegen den ganzen if abfragen, wo ich die Zeit übergebe.
Danke Dir, ich werde das dann so umschreiben.

Weiss wer noch ne lösung zu meinem vorherigen Posts?

MfG
 
Zuletzt bearbeitet:

bruce85

Bekanntes Mitglied
Wofür kann man Thread bzw. Timer verwenden, wenn man diese nicht wieder zu löschen bekommen, auch wenn der Timer noch läuft und ich die Seite bei FireFox neu lade um das Spiel Testweise neu zu erstellen.
Der Timer läuft ewig im Hintergrund weiter, auch wenn ich FireFox beende, also dort wo mein Spiel eigentlich eingebunden ist...
Im Java VisualVM ist mein Timer unter Timer-1 im Thread eingetragen und läuft ewig weiter.

Gibt es Vielleicht eine andere möglichkeiten, einen Timer einzubauen, der nicht im hintergrund läuft?
Man sollte ihn starten und stoppen können.

Danke schonmal.

MfG
 

Marco13

Top Contributor
*seufz* - Mal klartext: Wenn man ein Applet erstellt
Java:
class Test extends JApplet
{
    @Override
    public void stop()
    {
        System.out.println("Ich wurde gestoppt");
    }
}
dann sollte bei einem Browser-Reload oder so auch "stop" aufgerufen und die Ausgabe gemacht werden. Wenn man einen TImer erstellt hat, der irgendwo gestartet wurde, dann sollte man ihn mit
Java:
class Test extends JApplet
{
    Timer timer = new Timer(...);

    @Override
    public void stop()
    {
        timer.stop();
        System.out.println("Ich wurde gestoppt");
    }
}
auch stoppen können.
 

bruce85

Bekanntes Mitglied
Danke Dir.
Leider funktioniert das nicht, da ich den Timer in einem Canvas drin habe.
Ich bekomme folgende fehlermeldung:
Java:
The method stop() of type SolitaireCanvas must override or implement a supertype metrhod

Wie kann ich das beheben?

Edit: Ich habe das jetzt so gelöst:
Java:
public class Game extends JApplet{
	public void init() {
		setSize(600,600);
        add(new SolitaireCanvas());
        setVisible(true);
	}
	@Override
	public void stop() {
		SolitaireCanvas.setStop();
    }
}

Ich rufe dann die funktion im SolitaireCanvas auf und jetzt funktioniert es endlich.
Java:
static void setStop() {
    timer.stop();
    System.out.println("Ich wurde gestoppt");
}
Vielen Dank für deine Hilfe.

MfG
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
C Timer aktualisieren Java Basics - Anfänger-Themen 5
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
missy72 Timer oder Timeline Java Basics - Anfänger-Themen 3
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
D Änder der Timer Speeds Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
L Methoden Timer Java Basics - Anfänger-Themen 9
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
S Timer reseten Java Basics - Anfänger-Themen 3
T Timer stoppt zu früh Java Basics - Anfänger-Themen 7
CptK Methoden Timer & Mathematischer Denkfehler Java Basics - Anfänger-Themen 7
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
D Timer programmieren Java Basics - Anfänger-Themen 13
N Timer funktioniert nicht beim starten Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
E Timer erstellen Java Basics - Anfänger-Themen 2
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
S actionlistener timer Java Basics - Anfänger-Themen 9
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
S timer mit imagedatei Java Basics - Anfänger-Themen 5
S timer Java Basics - Anfänger-Themen 0
V Java Uitil Timer Stoppt nicht Java Basics - Anfänger-Themen 2
KaffeeFan Timer beenden Java Basics - Anfänger-Themen 12
K Ampelsteuerung mit Timer Java Basics - Anfänger-Themen 8
F Array und Timer Java Basics - Anfänger-Themen 2
G Timer einsetzen Java Basics - Anfänger-Themen 2
J Timer oder Thread programmieren ? Java Basics - Anfänger-Themen 10
F Timer beendet nicht immer Java Basics - Anfänger-Themen 2
F Timer abbrechen und wieder starten Java Basics - Anfänger-Themen 5
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
T Timer - HILFE Java Basics - Anfänger-Themen 10
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Schneller Timer Java Basics - Anfänger-Themen 2
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
B Timer beenden? Java Basics - Anfänger-Themen 0
G Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen Java Basics - Anfänger-Themen 6
O Delayed Timer erstellen Java Basics - Anfänger-Themen 3
M Timer / Thread Java Basics - Anfänger-Themen 43
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
D Problem mit Methode und Timer Java Basics - Anfänger-Themen 35
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
J Swing Timer Java Basics - Anfänger-Themen 3
M Einfacher Timer ;) Java Basics - Anfänger-Themen 15
M Timer für Termial-Eingaben Java Basics - Anfänger-Themen 3
C Methoden Einen Timer einbauen, aber wie? Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
S Erste Schritte Java Timer Java Basics - Anfänger-Themen 13
E Threads Timer Java Basics - Anfänger-Themen 6
Spin KI Anfänger Frage : Timer Problem Java Basics - Anfänger-Themen 6
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
L Erste Schritte Timer und Zugriffsattribute Java Basics - Anfänger-Themen 5
M Audio + Timer Java Basics - Anfänger-Themen 12
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
R Klassen MemorySpiel: brauche Timer Java Basics - Anfänger-Themen 3
D Timer in Applet Java Basics - Anfänger-Themen 2
ruerob Warum ist Timer schneller als While? Java Basics - Anfänger-Themen 9
F Java Timer Frage Java Basics - Anfänger-Themen 14
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
B Timer Java Basics - Anfänger-Themen 2
S timer task problem Java Basics - Anfänger-Themen 2
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
S "Kleines" Problem mit dem Timer Java Basics - Anfänger-Themen 4
Luk10 Problem mit vielen Timer(-Events) Java Basics - Anfänger-Themen 17
Luk10 Swing timer und Threads Java Basics - Anfänger-Themen 4
W Timer erstellen Java Basics - Anfänger-Themen 2
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
M Timer unterbrechen? Wo ist mein Thread? Java Basics - Anfänger-Themen 2
L Timer innerhalb eines Threads Java Basics - Anfänger-Themen 3
P Java Timer Java Basics - Anfänger-Themen 2
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
B problem mit timer/timertask, Farbverlauf Java Basics - Anfänger-Themen 10
Piwi Timer bei Programmende beenden Java Basics - Anfänger-Themen 25
T zweiter Timer überschreibt den ersten Timer ? Java Basics - Anfänger-Themen 5
kulturfenster Problem mit javax.swing.Timer Java Basics - Anfänger-Themen 2
C Regelmäßigen Timer bei Zeitüberschreitung nacheinander abarbeiten Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
H Timer Java Basics - Anfänger-Themen 3
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5
G Klasse mit Timer nicht beenden Java Basics - Anfänger-Themen 6
S Timer / TimerTask Frage Java Basics - Anfänger-Themen 8
S Timer bzw. TimerTask Frage Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben