问题很简单。我想创建一个垂直的值树,当你向下移动时,值的数量会以指数级增加。假设第一层有1个数值,下一层有10个,然后下一层有100个,再下一层有1000个,依此类推。第一层和第二层用线连接。第二个值到第三个值,以此类推,就像游戏树一样。这些值也是均匀分布的,假设您有一个500x500的JPanel。y为100时,您有4个值,因此为了均匀分布它们,您将有一个值为100,一个值为200,以此类推。
我尝试过合并drawString,用drawLine方法连接它们,并将这个所谓的图放在JPanel上。这实际上非常简单,如果在单个级别中只有50个~值,它就可以工作。但是,如果只有1600x900的屏幕,就无法容纳100个值(在x轴上,也就是1600)而不会有一个大的混乱。
我在想有两种可能的解决方案。
一个是JPanel不局限于一个设定的分辨率(也就是你的屏幕大小),并且是可滚动的。如果它是10000 x 900,那么制作这个巨大的树形图实际上会很简单,我可以很容易地在100个值之间留出足够的空间,使这些值实际上是可识别的。但是,据我所知,这是不可能的。
第二个解决方案是我将这些值写入一个文件,但我不知道如何进行。
有没有人知道,从理论上讲,正确显示一个大型树形图的最简单的解决方案是什么?
1条答案
按热度按时间e0bqpujr1#
Oracle有一个很有用的教程Creating a GUI With Swing。跳过使用NetBeans IDE学习Swing部分。特别注意Performing Custom Painting部分。
事实证明,可以创建一个10000 x 900的
JPanel
绘图。将JScrollPane
首选大小调整为您想要显示的大小。高度至少应为950像素,以便为水平滚动条留出空间。我创建了一个棋盘图案,这样您就可以看到
JPanel
图形确实在滚动。下面是完整的可运行代码。