Avatar billede hades Praktikant
09. november 2001 - 14:46 Der er 2 kommentarer og
1 løsning

Tråd problem

Hej !
Jeg har følgende kode:
class Visur extends Thread
{
    JTextField text;
    java.util.Date dato;
    long tidszoneOffset;
    long correction;
    boolean lokal;
    static final String days=\"SunMonTueWedThuFriSat\";
    static final String months=\"JanFebMarAprMayJunJulAugSepOctNovDec\";
   
    public String getTimezoneString()
    {
        long tz;
        String retString;

        tz=tidszoneOffset;
        boolean isPositive = (tz<0)? false: true;

        tz=Math.abs(tz);
        String timer=Long.toString(tz/60L);
        String minutter= Long.toString(tz-Long.valueOf(timer).longValue()*60L);

        if(1 == timer.length())timer=(\"0\" + timer);
        if(1 == minutter.length())minutter=(\"0\"+minutter);

        if(isPositive==true)retString=\"+\";
        else retString=\"-\";

        retString=retString + timer + \":\" + minutter;

        return retString;
    }
   
    public Visur(JTextField tekstfeldt, boolean lokalTime)
    {
        super();
        text=tekstfeldt;
        dato=new java.util.Date();
        tidszoneOffset=(long)dato.getTimezoneOffset();
        correction=0L;
        lokal=lokalTime;
    }
   
    public Visur(JTextField tekstfeldt, long corr, boolean localTime)
    {
        super();
        text=tekstfeldt;
        dato=new java.util.Date();
        tidszoneOffset=(long)dato.getTimezoneOffset();
        correction= corr * 1000L;
        lokal=localTime;
    }
   
    public static String date2ietf(java.util.Date date)
    {
            if(null==date)return null;
       
        String hours         =     String.valueOf(date.getHours());
        String minutes         =     String.valueOf(date.getMinutes());
        String seconds         =     String.valueOf(date.getSeconds());
        String month         =     months.substring(date.getMonth()*3,date.getMonth()*3+3);
        String day_of_week     =     days.substring(date.getDay()*3,date.getDay()*3+3);
        String year         =     String.valueOf(1900+date.getYear());
        String day             =     String.valueOf(date.getDate());

        if(hours.length()    < 2) hours= (\"0\" + hours);
        if(minutes.length()    < 2) minutes= (\"0\" + minutes);
        if(seconds.length()    < 2) seconds= (\"0\" + seconds);

        return new String(     day_of_week + \" \" + day + \" \" + month +
                            \" \" + year + \" \" + hours + \":\" + minutes +
                            \":\" + seconds );
    }

       
       
    public void run()
    {
            this.setPriority(Thread.MIN_PRIORITY);
       
            for(;;)
            {
                  dato=new java.util.Date();
                    if(!lokal)
                      dato.setTime(dato.getTime() + tidszoneOffset * 60L * 1000L + correction);
            else
                    dato.setTime(dato.getTime() + correction);
                    text.setText(date2ietf(dato));
        try
        {
                    Thread.sleep(1000);
                }
                catch (InterruptedException e)
                {
                }           
            }
    }
}

Men når jeg prøver at kalde den andet steds:
Visur hmm = new Visur(jtf,true);
hmm.run();

Går programmet kold/starter ikke.

Please hjælp

Hades
Avatar billede disky Nybegynder
09. november 2001 - 14:49 #1
I stedet for at lave din Date String formatering i hånden brug \'SimpleDateFormat\'


prøv med:
Visur hmm = new Visur(jtf,true);
hmm.start();



Avatar billede disky Nybegynder
09. november 2001 - 14:49 #2
Du vil jo starte tråden.

start() sætter det hele op, og kalder derefter run() for dig.
Avatar billede hades Praktikant
09. november 2001 - 14:57 #3
F*** du er for sej ...du fortjener de point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester