Как отобразить анимацию в ячейке JTable

s будет нулевым после каждой вставки, потому что ваш код s = newnode устанавливает локальный указатель s на новое значение, которое не обновляет содержимое исходного указателя в main(). insertnode() можно либо вернуть указатель s (например, s = insertnode(s,5), не рекомендуется), либо main() создать сторожевой узел в качестве заполнителя начала списка, который вы затем перейти к insertnode() при первом обращении к нему (рекомендуется).

9
задан Brian Tompsett - 汤莱恩 16 September 2016 в 19:10
поделиться

2 ответа

Как Вы говорите, основной JTable, рендеринг механизма не поддерживает это, CellRenderer используется для рисования ячейки (или часть ячейки по мере необходимости) и не позволит перекрашивания, это тянет по требованию.

Метод 1 - JLayeredPane

Если бы я должен был сделать это, то я использовал бы JLayeredPane для рисования моих анимированных рендереров сверху JTable.

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

JScrollPane-> (Область просмотра) JLayeredPane-> JTable & JPanel (прозрачный, с анимациями)

У Вас также было бы хитрое задание, кладущее нашу Вашу панель для анимаций, Вам или будет нужен менеджер по пользовательскому макету, чтобы зеркально отразить ширину столбцов JTable или использовать что-то как GridLayout. Выполнимый, но большая работа.

Method2 - пользовательский CellRenderer и перекрашивание в Таймере Swing

Единственная альтернатива, должен был бы сохранить список ячеек, которые были анимированы и затем поддерживают таймер колебания, который называл перекрашивание на них неоднократно. У Вас затем был бы пользовательский CellRenderer, делающий рисование анимации с рисованием изменения со временем. Это могло бы быть более просто, но разбирание в частоте кадров, не съедая ЦП, и заставляя обновления перекрашиваний соответствовать обновлениям анимации могло привести к некоторым нечетным визуальным эффектам

2
ответ дан 4 December 2019 в 22:30
поделиться

Сначала я пошел с той же идеей, которую Nick Fortescue имел (Method2). Однако сразу после этого я споткнулся через

Блог кроличьей норы

где автор обеспечивает очень usefu классы для значков с анимацией (на основе GIFs), а также Java2D оттянутый бесконечный индикатор хода выполнения (известный Mac OS X как прялка), который я мог просто заскочить в свое приложение, не имея необходимость волновать по поводу слишком большого рисования сам.

Однако имел меня не найденный ими, путь Nick's будет этим.

6
ответ дан 4 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

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