s
будет нулевым после каждой вставки, потому что ваш код s = newnode
устанавливает локальный указатель s
на новое значение, которое не обновляет содержимое исходного указателя в main()
. insertnode()
можно либо вернуть указатель s
(например, s = insertnode(s,5)
, не рекомендуется), либо main()
создать сторожевой узел в качестве заполнителя начала списка, который вы затем перейти к insertnode()
при первом обращении к нему (рекомендуется).
Как Вы говорите, основной JTable, рендеринг механизма не поддерживает это, CellRenderer используется для рисования ячейки (или часть ячейки по мере необходимости) и не позволит перекрашивания, это тянет по требованию.
Если бы я должен был сделать это, то я использовал бы JLayeredPane для рисования моих анимированных рендереров сверху JTable.
Однако я думаю, что это была бы большая работа. Необходимо было бы разобраться довольно много, особенно если бы у Вас был он в области прокрутки. Вы иерархия включения были бы чем-то как:
JScrollPane-> (Область просмотра) JLayeredPane-> JTable & JPanel (прозрачный, с анимациями)
У Вас также было бы хитрое задание, кладущее нашу Вашу панель для анимаций, Вам или будет нужен менеджер по пользовательскому макету, чтобы зеркально отразить ширину столбцов JTable или использовать что-то как GridLayout. Выполнимый, но большая работа.
Единственная альтернатива, должен был бы сохранить список ячеек, которые были анимированы и затем поддерживают таймер колебания, который называл перекрашивание на них неоднократно. У Вас затем был бы пользовательский CellRenderer, делающий рисование анимации с рисованием изменения со временем. Это могло бы быть более просто, но разбирание в частоте кадров, не съедая ЦП, и заставляя обновления перекрашиваний соответствовать обновлениям анимации могло привести к некоторым нечетным визуальным эффектам
Сначала я пошел с той же идеей, которую Nick Fortescue имел (Method2). Однако сразу после этого я споткнулся через
где автор обеспечивает очень usefu классы для значков с анимацией (на основе GIFs), а также Java2D оттянутый бесконечный индикатор хода выполнения (известный Mac OS X как прялка), который я мог просто заскочить в свое приложение, не имея необходимость волновать по поводу слишком большого рисования сам.
Однако имел меня не найденный ими, путь Nick's будет этим.