黑色围绕绘制的图像闪烁

时间:2018-07-02 01:48:41

标签: java image swing graphics

我目前正在尝试将图像绘制到JFrame(只是废话测试图像)。在下面的代码段中,图像被绘制到JFrame,但是图像周围未填充JFrame的区域为黑色,并迅速闪烁。

这是下面的代码:

try {

        myImage = ImageIO.read(ImagesMain.class.getResource("/Textures/TestImage.png"));

    }catch(Exception e) {
        e.printStackTrace();
    }

    BufferStrategy strategy = null;

    while(strategy == null) {//I know this is terrible practice, just doing this way because its inside main

        strategy = myCanvas.getBufferStrategy();

        if(myCanvas.getBufferStrategy() == null) {
            myCanvas.createBufferStrategy(3);
        }
    }



    myFrame.setVisible(true);

    //Rendering part


    while(true) {
        do {
            do {

                g = strategy.getDrawGraphics();
                g.setColor(Color.WHITE);
                g.drawImage(myImage, 20, 20, null);
                g.dispose();

            }while(strategy.contentsRestored());

            strategy.show();

        }while(strategy.contentsLost());
    }

我已经多次测试并重新测试我的代码,但无济于事。我还应该补充一点,这都是在main方法中完成的(出于测试目的)。长话短说,如何在图像周围没有不必要的黑色闪烁的情况下显示图像?

1 个答案:

答案 0 :(得分:0)

发生这种情况时,是因为没有清除其绘制的框架。在这种情况下, 需要g.clearRect(x, y, height, width);来清除绘图框并显示清晰的图像。

以上评论由@MadProgrammer提供。