Я работаю над проектом для онлайн-класса. Я сделал ошибку, взяв этим летом, и мне нужно создать графический интерфейс, чтобы показать, как работает алгоритм кода Хаффмана. Часть алгоритма проста, не очень сложна. Однако я не уверен, что лучший способ нарисовать дерево (Форрест) на каждом шаге. Он должен был бы начинаться как n узлов (с символами в них) на экране, а затем вы нажимаете кнопку «Далее», и он выбирает два символа с наименьшим весом узлов (на основе частоты символов) и делает их потомками новый узел (только с весом - без символа), а затем обновите экран / панель.
Я делал свинг-графический интерфейс раньше, мои навыки не являются чем-то особенным, но я знаю свой путь. Однако я застрял на этой реализации. У меня есть пара сотен строк кода, написанных прямо сейчас, но это не работает, и я все равно думаю, что это плохо, поэтому я хочу «начать все сначала» и лучше спланировать. Поэтому я хотел бы дать вам совет относительно структуры данных, чтобы отслеживать узлы и как рисовать их на экране.
Я использовал ArrayList из JPanels в качестве узлов и пытался нарисовать их в нулевой макет. Я уверен, что это ужасно, и я хотел бы узнать лучший способ. Возможно GridBagLayout?
ПРИМЕЧАНИЕ: не говорите JTree.