Обновление значка JLabel с GIF в конечном итоге останавливает анимацию [dубликат]

Я собирался задать этот один и тот же вопрос, и я нашел решение.

Предположим, у вас есть произвольное количество слов, которые вы хотите захватить.

" есть четыре огня: «

и

« капитан-пикард - это бомба »

Вы можете подумать, что решение:

  / ((\ w +) \ s?) + /  

Но это будет соответствовать только всей входной строке и последней захваченной группе.

Что вы можете do использует переключатель «g».

Итак, пример в Perl:

  use strict;  использовать предупреждения;  my $ str1 = "есть четыре огня";  мой $ str2 = «капитан-пикард - это бомба»;  foreach ($ str1, $ str2) {my @a = ($ _ = ~ / (\ w +) \ s? / g);  print "захваченных групп:".  join ("|", @a).  "\n";  }  

Вывод:

  захваченных групп: есть | четыре | огни захваченных групп: captain | picard | is | the | bomb [  ! d2] 

Итак, есть решение, если ваш язык выбора поддерживает эквивалент «g» (и я думаю, что большинство из них ...).

Надеюсь, это поможет кому-то который был в том же положении, что и я!

S

3
задан jitter 11 November 2009 в 23:17
поделиться

2 ответа

На вновь созданном значке попробуйте использовать:

  icon.getImage (). flush ();   
4
ответ дан camickr 15 August 2018 в 23:39
поделиться
  • 1
    Оно работает ! Большое спасибо. – POSIX_ME_HARDER 12 November 2009 в 00:44
  • 2
    У lol был тот же ответ, готовый уже некоторое время. но только спрятал кнопку редактирования редактирования только после выполнения еще нескольких тестов. хорошо – jitter 12 November 2009 в 01:00

Хорошо,

отбросил старый ответ. После некоторого поиска я нашел способ сделать это.

  ImageIcon icon = .. [анимированный gif без цикла] .. .... label1.setIcon (значок);  // анимация воспроизводится один раз .... // теперь время, чтобы удалить значок из метки1 и добавить его в label2 label1.setIcon (null);  icon.getImage () на одном уровне ().  // сбрасываем ресурс, используемый изображением label2.setIcon (значок);  ....  

Java Api: изображение # flush ()

btw. если вы оставите строку label1.setIcon (null); , она все равно повторит анимацию значка только для метки2. label1 остается на последнем кадре.

1
ответ дан jitter 15 August 2018 в 23:39
поделиться
  • 1
    Во-первых: Eclipse говорит: loadImage () не отображается для imageIcon. Второе: не работает (просто покажите последний кадр). – POSIX_ME_HARDER 11 November 2009 в 23:26
  • 2
    Замененный старый ответ новым правильным ответом – jitter 12 November 2009 в 00:58
Другие вопросы по тегам:

Похожие вопросы: