[英]What if the preferredSize of my component is taller than Integer.MAX_VALUE?
我写了一个十六进制查看器。
但是,我在Swing中发现了一个限制。 如果您有3GB的文件,并且以每行20像素的速度进行渲染,则组件的总高度为:
(3GB /每行16个字节)*每行20个像素= 3.75GB
此时,Swing无法呈现任何内容,因为该值溢出了Integer.MAX_VALUE
。
到目前为止,这是我最好的主意:
这似乎是一项艰巨的工作,但是这样的组件可能对大型图表或大型文本文档有用。
我考虑过只是对它进行分页,但是当您使用“查找”功能并且它与跨越页面边界的文本匹配时,看起来会很尴尬。
我通常使用的(非Java)十六进制查看器(Hex Fiend)也不使用分页。 它只是滚动文档的整个高度,就好像这不是问题一样。
有谁知道解决这类问题的好方法?
您不需要在长坐标中绘制十六进制查看器,因为您只需要绘制文件中当前希望显示的部分。 JScrollPane是用于滚动大型组件的非常有用的工具,但是您不需要它。 如果您要滚动的内容太多,以至于没有足够大的组件来容纳所有组件的麻烦,那么只需制作一个JScrollBar并根据滚动条的位置绘制组件即可进行滚动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.