Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 14:12

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kennt sich wer mit Java aus?^^

Discussion on Kennt sich wer mit Java aus?^^ within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
South-Park's Avatar
 
elite*gold: 65
Join Date: Apr 2010
Posts: 2,651
Received Thanks: 509
Kennt sich wer mit Java aus?^^

Brauche Hilfe bei nem java-Problem hock da schon Stunden dran und keiner konnte mir helfen^^

Ich zeig euch mal die Stellen:
Code:
//Autosave-Timer
        autosave.addActionListener(new ActionListener() {
            @Override
            @SuppressWarnings({"SleepWhileInLoop", "WaitWhileNotSynced"})
            public void actionPerformed(ActionEvent ae) {
                if (autosave.isSelected()) {
                    if (!timerstart) {
                            autoSaveTimer();
                            timerstart = true;
                    } else {
                    }
                } else {
                    autosaveL.setText("Autosave beendet!");
                }
            }
        });
und die Methoden:
Code:
   public void autoSaveTimer() {
        System.out.println("1. Timermeldung");
        autosaveL.setText("Autosave gestartet! So oft "
                + "wurde bisher gespeichert: "
                + Integer.toString(autosaveZaehler) + " mal.");
        do {
            timerstart = true;
            timerfinish = false;
            System.out.println("Timerfinish am Anfang ist " + timerfinish);
            System.out.println("Timerstart ist am Anfang " + timerstart);
            System.out.println("Timer wird gestartet");
            timer.schedule(timerTask, 1);
            if (timerfinish) {
                System.out.println("2.Timermeldung");
                continue;
            } else {
                System.out.println("Das darf hier garnicht stehen");
                continue;
            }
        } while (timerfinish);
    }
    
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            autosaveZaehler++;
            autosaveL.setText("Autosave gestartet! So oft "
                    + "wurde bisher gespeichert: "
                    + Integer.toString(autosaveZaehler) + " mal.");
            System.out.println("Zeit ist um");
            timer.cancel();
            timerfinish = true;
            timerstart = false;
            System.out.println("Timerfinish in run() = " + timerfinish);
            System.out.println("Timerstart in run = " + timerstart);
        }
    };
Was es machen soll: ("autosave" ist ein JCheckBoxMenuItem)
Wenn das Häckchen drin ist, soll das Label alle X Sekunden die Zahl um eins hochzählen.
Leichter gesagt als getan, brauch Hilfe^^ letzte Hoffnung waren die Continue, aber leider nein. Er watet einfach nciht, bis der Timer fertig ist, sondern startet ihn und macht dann den rest, dadurch wird die while Schleife ja abgebrochen, weil "timerfinish" noch false ist.
Mithilfe der ganzen Outputs wollte ich mir ne Fehlerquelle suchen, hat ja auch geklappt^^
Hilfe^^
South-Park is offline  
Old 07/23/2013, 02:10   #2
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
timer.schedule(timerTask, 1);
so wird der timer doch garnicht gestartet, hinter der 1 fehlt noch ein parameter.
hatte zwar ewig kein java mehr, aber vllt. hilft das ja weiter:

Code:
  
  public void jCheckBox1_ActionPerformed(ActionEvent evt) {
    t.schedule(new checked(), 0, 1000);  //beim checkboxklick wird direkt der timer ausgeführt ( 0 ) und dies jede sec. ( 1000 )
    System.out.println("x");
    System.out.println("xx");            // das wird alles parallel zum timer ausgeführt
    System.out.println("***");
  }
  
  class checked extends TimerTask {
    public void run() {
      jLabel1.setText(Integer.toString(zae));
      zae += 1;

      if (zae >= 5){   //hier die abbruch bedingung
        t.cancel();
        System.out.println("timer ende..");      //das passiert nach dem timer
      }

    }
  }
falls was völlig daneben ist, bitte ich das zu entschuldigen...habe wie gesagt ewig nicht mit java programmiert
omer36 is offline  
Old 07/23/2013, 13:38   #3
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Hi,

der Timer wird in einem neuen Thread, d.h. parallel zu deinem restlichen Code ausgeführt. Der Aufruf von timer.shedule() wartet daher nicht, bis der Timer-Code abgearbeitet wurde.

Neben dem Timer, den du nutzt, gibt es übrigens auch einen Timer in javax.swing.Timer, der mit einem ActionListener arbeitet und eine start()/stop()-Methode bietet. Du könntest auch einen solchen Timer anlegen und immer, wenn der Menüpunkt (de)aktiviert wird, starten bzw. stoppen.

Quasi so:

... Konstruktor:
Quote:
timer = new javax.swing.Timer(delay:int, new java.awt.event.ActionListener() { public void actionPerformed() { ... dein Code ... } });
... ActionListener des Menüpunkts:
Quote:
if (autosave.isSelected()) { timer.start(); } else { timer.stop(); }
dowhile is offline  
Old 07/23/2013, 20:05   #4
 
South-Park's Avatar
 
elite*gold: 65
Join Date: Apr 2010
Posts: 2,651
Received Thanks: 509
habs schon gelöst, aber danke habs btw anders gelöst, mit 2 inneren Klassen



und @omer: er wurde gestartet, jedoch nur einmal :P
South-Park is offline  
Reply


Similar Threads Similar Threads
Kennt sich damit wer aus würde sich ne psc rest verdiennen mit ca 2 euro
04/01/2012 - CrossFire - 2 Replies
How To Extract 3D models From CrossFire *UPDATED* - YouTube kennt sich hier mit jemand aus der jenige der mir hilft bekommt 2 euro psc rest
[Java] Kennt Beziehungen in Reihe?!
11/12/2011 - General Coding - 5 Replies
Hey E*pvpers. Habe zu folgendem Beispielquelltext ein Problem: /** * Write a description of class Buecherkeller here. * * @author (your name) * @version (a version number or a date) */
Wer kennt sich mit DB aus ?
10/26/2011 - Metin2 Private Server - 0 Replies
Hey ;) Da man die neuen Scripts nicht ohne GameDatenbank aufspielen kann, wollte ich mal fragen ob man die Gamedatenbank in phpMyAdmin inportieren kann oder so. Zweitens würde ich gerne wissen, wie man wenn man einen Server hat, die Homepage mit der Serverdatenbank genau verbindet. Ich vermute schon wie :P Und kennt ihr eine Möglichkeit, wie man ohne Rootserver so ein Script ohne viele Fehler auf einen Hoster auspielen kann? MfG
Wer kennt sich aus?
10/25/2010 - WarRock - 18 Replies
Also ich hab mir neuen Acc gemacht weil bei den anderen ist die KD so kake und mein Freund der den hatte, hat damit gehackt... Also hab ich new Acc gemacht und hol mir morgen 800 G1C Was soll ich mir damit kaufen...? Hab noch Codes von XM8, Kamakatzi, Javelin, Combat Knife... Ich bevorzuge Medic und Assault.. Also welche Waffen soll ich kaufen? Noch eine Frage, hab auf den anderen Acc noch paar G1C und Dinar kann man die i-wie rübertauschen oder so???
kennt sich da jmd aus?
09/21/2010 - Metin2 Private Server - 7 Replies
moin also ich hab mit den files von ck v2 einen server gemacht und so weit ales gut läuft auch aber wenn ich mich einlogge alles gut kann fk machen alles aber so bald ich laufe geht es ned mal 5sek. gleich kick :confused: LOL kp was das soll vllt kennt sich jmd damit aus (1000 Ram wurde verändert) währe froh wenn mir jmd helfen kann MfG



All times are GMT +1. The time now is 14:13.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.