drawLine不会在BufferedImage上绘制线条

Dan*_*sek 1 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();
    }
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

Mau*_*rry 5

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

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

  • 对不起,你在那里完全清楚,不知道我在想什么. (2认同)