jak dam opóźnienie o 1s to mi się odświeża ale tylko 1 raz...
taki mam dokładnie kod z pominięciem nieistotnych funkcji:
package planlekcjipakiet;
import javax.microedition.lcdui.*;
import java.util.*;
public class Plotno extends Canvas implements CommandListener{
private Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"));
private int dzienTygodnia=cal.get(Calendar.DAY_OF_WEEK);
private PlanLekcjiMIDlet Midlet;
private Command koniec = new Command("Wyjście",Command.EXIT,0);
private Command szczegolowy = new Command("Obecnie",Command.OK,0);
private Command ogolny = new Command("Ogólny",Command.OK,1);
private Timer timer=null;
TimerTask task = new TimerTask()
{
public void run()
{
Plotno.this.obecnie(Plotno.this.cal.get(cal.HOUR_OF_DAY),cal.get(cal.SECOND));
repaint();
}
};
public Plotno(PlanLekcjiMIDlet midlet)
{
bufor = Image.createImage(240,320);
bg = bufor.getGraphics();
this.addCommand(koniec);
this.addCommand(szczegolowy);
this.addCommand(ogolny);
this.setCommandListener(this);
rysujPlan();
Midlet = midlet;
}
public void obecnie(int godzina,int minuta)
{
dzienTygodnia=cal.get(Calendar.DAY_OF_WEEK);
String dzien="";
switch(dzienTygodnia)
{
case 0: dzien="Sobotę";
break;
case 1: dzien="Niedzielę";
break;
case 2: dzien="Poniedziałek";
break;
case 3: dzien="Wtorek";
break;
case 4: dzien="Środę";
break;
case 5: dzien="Czwartek";
break;
case 6: dzien="Piątek";
break;
}
this.removeCommand(szczegolowy);
this.addCommand(ogolny);
this.setCommandListener(this);
this.ustawKolor(255, 255, 255);
this.rysujProstokat(0, 0, 240, 320, true);
this.ustawKolor(0, 0, 0);
this.rysujLinie(0, 30, 240, 30);
this.ustawCzcionke(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
this.napiszText("Dzisiaj mamy "+dzien+" "+minuta+" "+godzina, 120, 13, Graphics.BASELINE|Graphics.HCENTER);
}
protected void paint(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(0, 0, 240, 320);
g.drawImage(bufor, 0, 0, Graphics.TOP|Graphics.LEFT);
}
public void commandAction(Command c, Displayable s)
{
if(c.getCommandType() == Command.EXIT)
Midlet.notifyDestroyed();
if(c.getCommandType() == Command.OK && c.getPriority()==0)
{
timer = new Timer();
cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"));
timer.schedule(task, 1000, 1000);
this.obecnie(cal.get(cal.HOUR_OF_DAY),cal.get(cal.SECOND));
}
if(c.getCommandType() == Command.OK && c.getPriority()==1)
{
this.rysujPlan();
}
}
}