java如何在JPanel中仅显示可见区域

时间:2015-01-13 16:04:13

标签: java swing jpanel

所以我在JScrollPane里面有JPanel。有没有办法在JPanel上只显示可见区域?现在我的代码看起来像这样:

public void paintComponent(Graphics g)
{
    super.paintComponent(g);

    for(int i = 0; i < m_xTiles; i++)
    {
        for(int j = 0; j < m_yTiles; j++)
        {
            m_mapTiles.get(i).get(j).DrawImage(g);
        }
    }
}

这不是我想要的东西,因为它显示了一切,当我想制作一张非常大的地图时,动作非常慢。我想在screan上获得可见的矩形 - 四个像素的位置然后我将计算到我自己的x和y:)

1 个答案:

答案 0 :(得分:2)

通常,图形系统关注可见边界之外的剪切操作,因此这些操作变为无操作且不昂贵。因此,在大多数情况下,您不需要处理这些信息,因为绘图时图形操作是昂贵的部分。

但是,有时您可能会遇到这样的情况,即您在<{1}}对象上的调用之前执行的操作变得昂贵,即如果您有一个非常大但只有部分可见的组件(如你所述)。在这种情况下,访问剪辑信息以执行手动跳过可能很有用,尤其是在平铺区域时,因此计算要处理的项目相当容易:

Graphics