Dzialanie w tle

0

Witam

Problem jest taki:
Zrobiłem sobie na jLabelu prosty zegarek cyfrowy , który jest odświeżany co 1 sekundę przez obiekt typu Timer.
Wszystko ładnie działa ,ale gdy na przykład odpalam grę i jest ona wyświetlana na fullscrean to przez ten czas program nie wykonuje się ,czyli mój zegar nie odlicza kolejnych sekund.
Wygląda to tak jakby program nie działał w tle.

W jaki sposób można osiągnąć to by program działał w tle.

0

Cześć rzuć odem tego programu, to sprawdzimy o co biega.

0
public class MyClock {

    private String current_time;
    private java.util.Date date;
    private final javax.swing.JLabel label;

    public MyClock(javax.swing.JLabel label) {
        if (current_time == null) {
            java.sql.ResultSet rs = DB.DB.executeQuery("SELECT NOW()");
            try {
                rs.next();
                this.date = rs.getTimestamp(1);
                Timer timer = new Timer(1000,new ClockTickAction());
                timer.start();

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        this.label = label;
    }
    private class ClockTickAction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            date.setTime(date.getTime() + 1000);
            label.setText("<html><center>"+new SimpleDateFormat("yyyy.MM.dd").format(date).toString()+
                    "<br>"+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+"</br></center></html>");
        }
    } 

To jest kod ,który realizuje zegar.
Sam zegar jak napisałem wcześniej działa dobrze ale nie wiem czemu stoi w miejscu gdy np. mam włączoną grę na fullscrean.
Może należało by uruchomić ten zegar w oddzielnym wątku ale nie wiem czy o to chodzi.

0

Spróbuj użyć java.util.Timer, fragment dokumentacji:
Timer(String name, boolean isDaemon)
Creates a new timer whose associated thread has the specified name, and may be specified to run as a daemon.

0

dzieki bo
t/c

1 użytkowników online, w tym zalogowanych: 0, gości: 1