【发布时间】:2012-07-30 14:18:46
【问题描述】:
我有一个应用程序,我想在其中显示许多图像组件。其中的每个项目都是一个custom jcomponent,它将在BufferedImage 对象中包含图像,以便在paintcomponents(Graphics g) 覆盖方法中绘制它。我还将使用JPanel 用于网格,gridlayout 或flowlayout 用于放置自定义图像jcomponents,网格的布局也将在JscrollPane 内。
我的问题是,当我必须放入网格的图像数量变大时会发生什么。使用jscrollpane,组件的数量因此必须绘制的图像数量将小于20-30个组件,但每个插入网格的组件都会有一个BufferedImage对象来保存相应的图像。这对性能和内存消耗有害吗?可以使用一些模式吗?例如,如果我使用主要参考点将图像从磁盘加载到bufferedimage,并且根据scrollpane 的哪个矩形,用户然后释放一些缓冲图像,他们从@ 的当前位置存放在网格中987654332@?
谢谢。
【问题讨论】:
-
谢谢,您的意思是,使用带有
Custom cell renderer的JTable 在单元格内显示我的自定义JComponent,因为JTable只会在特定单元格处于可见状态时调用渲染器滚动窗格的区域,因此不会浪费内存,加载所有图像。但是已经从磁盘加载新图像,不是问题吗?
标签: java swing memory-management bufferedimage