我正在为我在暑假选修的在线课程上的一个项目工作,我需要构建一个 GUI 来展示哈夫曼编码算法的工作原理。算法部分很简单,不是非常复杂。然而,我不确定在每个步骤中绘制树(森林)的最佳方法。它必须从屏幕上的 n 个节点(带有字符)开始,然后您会按下“下一个”按钮,它会选择两个具有最低权重(基于字符频率)的节点,并使它们成为新节点的子节点(仅具有权重-没有字符),然后更新屏幕/面板。
我以前做过 swing gui,我的技能并不特别,但我知道该怎么做。然而,我卡在了这个实现上。我现在已经写了几百行代码,但它不起作用,而且我认为它也很糟糕,所以我想“重新开始”并更好地计划它。因此,我只想请教一下如何跟踪节点的数据结构以及如何在屏幕上绘制它们的建议。
我曾尝试使用 JPanel 的 ArrayList 作为节点,并尝试将它们绘制到 null 布局上。我确信这很糟糕,我想知道更好的方法。可能是 GridBagLayout?
注意:不要使用 JTree。
我以前做过 swing gui,我的技能并不特别,但我知道该怎么做。然而,我卡在了这个实现上。我现在已经写了几百行代码,但它不起作用,而且我认为它也很糟糕,所以我想“重新开始”并更好地计划它。因此,我只想请教一下如何跟踪节点的数据结构以及如何在屏幕上绘制它们的建议。
我曾尝试使用 JPanel 的 ArrayList 作为节点,并尝试将它们绘制到 null 布局上。我确信这很糟糕,我想知道更好的方法。可能是 GridBagLayout?
注意:不要使用 JTree。
JPanels
列,还是多于一个?JPanels
的宽度和高度是否相同?JPanels
放置到了JScrollPane
中?