Új hozzászólás Aktív témák

  • Murphistic

    aktív tag

    válasz gaben #2376 üzenetére

    Megint próbálkoztam egy kicsit. Sajnos most olyan hibával találkoztam, hogy ugyan szépen frissíti a képet a kód ( az is, amit elsőnek írtál ), de a végén, amikor kilép a ciklusból eltűnik a kiírt szöveg. Mintha ezt a Java update hívásai okoznák, sajnos a megoldásra még nem jöttem rá.

    Viszont ha csak egy számláló kiírása a cél, akkor szerintem egyszerűbb egy JLabel-t használni erre a célra, amit pl. NetBeansben is vagy saját prancsokkal testre szabsz ( háttérszín, betűméret, betű színe, típusa )

    Csináltam egy osztályt, aminek a konstruktorában beállítod, hogy melyik JLabel számoljon és utána meghívod a start-ot.

    class IdoThread extends Thread{
    JLabel label;
    public IdoThread(JLabel label)
    {
    this.label=label;
    }
    public void run(){
    int ido=0;
    while(ido<5){

    label.setText(""+ido);
    label.update(label.getGraphics());
    try{
    Thread.sleep(1000);
    }catch(InterruptedException ie){
    ie.printStackTrace();
    }
    ido++;

    }
    }
    }

    Valahol a programkódban, ahol szükséged van a számláló elindítására ( pl. egy gombra kattintva ) beszúrod ezt:

    IdoThread it=new IdoThread(jLabel1);
    it.start();

    Ennek még az is az előnye, hogy nem blokkolja az alkalmazásod felületét, tehát a számláló akkor is megy, ha mondjuk gépelsz a programodban, vagy így használható lesz egy másik gomb is, ami mondjuk a számláló leállítására szolgál.

    Úgy néz ki, hogy a tegnap esti megoldásom egy elég nagy katyvasz lett :D és nem valószínű, hogy működni is fog.

    Nem tudom, hogy ennyi megoldja-e a problémádat, mert az tényleg furcsa, hogy nem akar működni a kirajzolás a Graphics-on.

Új hozzászólás Aktív témák

Hirdetés