JSarollPane Scroll上的JPanel重绘

时间:2015-03-28 12:56:56

标签: java swing paint

我有一个使用paintComponents绘制的JPanel,上面涂有许多小瓷砖(4097 * 4097 1x1)。

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    drawTile(g);
}

public void drawTile(Graphics g) {
    for (double[] row : terrainData) {
        for (double d : row) {
            int v = (int) (20 - d / 500);
            if (v < 0) {
                v = 0;
            } else if (v > 20) {
                v = 20;
            }
            color = v;
            g.setColor(colors[color]);
            g.fillRect(left, top, x, y);
            left += x;
            if (left == terrainSize * x) {
                left = 0;
                top += y;

            }
        }
    }       
}

我将这个JPanel添加到JScrollPane以便在大面板中移动。我的问题是每当移动JScrollPane时,JPanel都会完全消失。我尝试在滚动窗格中添加一个更改侦听器,当stateChanged()重新验证并重新绘制JPanel时,尽管这并没有改变结果。如何让JPanel完全不更改,或者在滚动JScrollPane时重新绘制?

0 个答案:

没有答案