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
