drawLine不会在BufferedImage上绘制线条

时间:2011-11-01 07:56:37

标签: java swing bufferedimage graphics2d

我遇到了以下问题。我想在BufferedImage上画线,但它们没有显示出来。如果我没有加载图像,他们会显示。问题是什么?这是我的代码:

@Override
    public void paintComponent(Graphics g) {
        prepareImage();
        g.drawImage(buffer, 0, 0, null);
        g.dispose();
    }
    private void prepareImage() {
        Graphics g = buffer.createGraphics();
        g.drawImage(mapImage, 0, 0, null);
        g.setColor(Color.RED);
        for (Line line : lines)
            g.drawLine(line.x1, line.y1, line.x2, line.y2);
        lines.clear();
        g.dispose();
    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我在您的代码中看到两个问题:

  1. 您不应该在paintComponent
  2. 中调用g.dispose()
  3. 由于您清除了行集合,下次调用paintComponent时(并且您无法控制),不会绘制任何行。