小编cor*_*liu的帖子

组件可见时的java事件

我有一个JScrollPane包裹在一个JPanel周围,该JPanel可能包含数百个显示缩略图的JLabel(每个JLabel一个缩略图)。出于内存原因,我不想构建所有缩略图。我只想为可见的JLabel构建缩略图,并在其JLabel变得不可见时删除缩略图。当用户滚动JPanel时,它们变为可见/不可见。我试图通过使用ComponentListener来实现缩略图的加载/卸载:

addComponentListener( new ComponentAdapter() {

    @Override
    public void componentShown( ComponentEvent e ) {
        setIcon( new ImageIcon( getThumb() ) );
    }

    @Override
    public void componentHidden( ComponentEvent e ) {
        setIcon( null );
    }
});
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。JLabel始终为空。我可以使用scroll事件并计算应该加载哪些缩略图,但是在此之前,我想知道是否有更简单的解决方案。

java events swing jscrollpane componentlistener

3
推荐指数
1
解决办法
1208
查看次数

标签 统计

componentlistener ×1

events ×1

java ×1

jscrollpane ×1

swing ×1