tihicaa Ответов: 1

Java gui/swingworker проблема


Привет, ребята, я очень новичок в java и занимаюсь этой проблемой уже более 10 дней. У меня есть приложение для создания с двумя вариантами, on time и Countdown, где пользователь выбирает нужный вариант, а по времени установки открывается новое окно, и оно мигает, меняя цвета. Второй вариант работает просто отлично, но номер опции on не будет запускаться в определенное время.

Это код для первого варианта:


if (jCheckBox1.isSelected()){
        st = true;
   
    set = jFormatted.getText();
    try{
     
     String myDateString = jFormatted.getText();
     SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
       Date date = sdf.parse(myDateString);
        date.toString();
       Calendar c = Calendar.getInstance();
            c.setTimeInMillis(razlika);
    }
       
    catch(Exception e){}
   
       sw = new SwingWorker() {  
            @Override
            protected Object doInBackground() throws Exception{
                Thread.sleep(razlika);
              
              Calendar c = Calendar.getInstance();
            c.setTimeInMillis(razlika);
           
              Thread.sleep(c.getTimeInMillis(),s.getTime1());
                FrameBoja.Pocetak();
                while(st){
                  Thread.sleep(s.getTime1()); 
                    FrameBoja.cf.getContentPane().setBackground(s.getColor());
                    Thread.sleep(s.getSpeed());
                     FrameBoja.cf.getContentPane().setBackground(new Color (44,62,80)); 
                      Thread.sleep(s.getSpeed());  
                     
                }
                return null;
            }
        }; 

and here it is for second one

else if(jCheckBox2.isSelected()){
        s.setTime2((Integer)jSpinner2.getValue()*1000);
        st = true;
        sw = new SwingWorker() {
            @Override
            protected Object doInBackground() throws Exception {
                Thread.sleep(s.getTime2());
                 FrameBoja.Pocetak();
                 while(st){
                     FrameBoja.cf.getContentPane().setBackground(s.getColor());  
                     Thread.sleep(s.getSpeed());
                     FrameBoja.cf.getContentPane().setBackground(new Color (44,62,80));
                     Thread.sleep(s.getSpeed());  
                 }
                 return null;
            }
        };
        sw.execute();


        sw.execute();


Любая помощь, совет более чем приветствуются.

Что я уже пробовал:

Я перепробовал много вещей, изменил формат времени, изменил переменные...

1 Ответов

Рейтинг:
0

Richard MacCutchan

Может быть, что-то в этом районе со всеми этими вознями со строками и временами вызвало исключение. Но поскольку вы игнорируете любые исключения, которые вы ловите, нет никакого способа узнать. Используйте отладчик, чтобы пройти через код и посмотреть, что происходит. Вы также используете один и тот же текстовый ввод для разных элементов и разных календарей с одним и тем же именем переменной.