rysowanie własnego buforowanego obrazu na ramce

Mam buforowany obraz z rozmiarami mojej ramki:

public BufferedImage img;
public static int WIDTH = 800;
public static int HEIGHT = 600;
img=new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);

Jak mogę to narysować, aby zobaczyć tylko czarny obraz wypełniający ramkę? bez użycia Canvas

Chcę używać tylko funkcji drawImage z grafiki bez używania funkcji paint lub paintComponent

Jeśli to możliwe, jak mogę przypisać do tego obrazu macierz 1D [SZEROKOŚĆ * WYSOKOŚĆ]?

PO PROSTU: Chcę utworzyć obraz, przekonwertować wartości z tablicy na piksele (0 = czarny, 999999999 = jasnoniebieski itp.) I narysować go na ekranie.

EDYTOWAĆ:

Jest to kod, który nie działa zgodnie z oczekiwaniami (powinien to być ramka z czarnym rysunkiem), ale jest to tylko pusta ramka. Dlaczego obraz nie jest dodawany do ramki?

  import javax.swing.*;

  import java.awt.Canvas;
  import java.awt.Graphics;
  import java.awt.image.BufferStrategy;
  import java.awt.image.BufferedImage;
  import java.awt.image.DataBufferInt;

  public class test extends Canvas{

public static JFrame frame;
public static int WIDTH = 800;
public static int HEIGHT = 600;

public test(){

}

public static void main(String[] a){

        test t=new test();
        frame = new JFrame("WINDOW");
        frame.add(t);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(WIDTH, HEIGHT);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        t.start();

}

public void start(){

    BufferedImage img = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);
    int[] pixels = ((DataBufferInt)img.getRaster().getDataBuffer()).getData();
    boolean running=true;
    while(running){
        BufferStrategy bs=this.getBufferStrategy();
        if(bs==null){
            createBufferStrategy(4);
            return;
        }
        for (int i = 0; i < WIDTH * HEIGHT; i++)
            pixels[i] = 0;

        Graphics g= bs.getDrawGraphics();
        g.drawImage(img, 0, 0, WIDTH, HEIGHT, null);
        g.dispose();
        bs.show();

    }
}}

questionAnswers(1)

yourAnswerToTheQuestion